Proposal
ProposalBase
Section titled “ProposalBase”A proposal for funding.
Property | Type | Required | Description |
---|---|---|---|
title | string | No | The title of the proposal and/or the project requesting funding |
description | string | No | The description of the proposal and/or the project requesting funding |
amountRequested | Money | No | The amount of money requested |
projectTimeline | ProjectTimeline | No | The key dates for the project |
opportunity | ProposalOpportunity | No | The opportunity to which this proposal is related |
organizations | ProposalOrgs | No | The organization that is requesting funding |
contacts | ProposalContacts | No | The point of contact for the project |
customFields | Record<CustomField> | No | The project’s custom fields |
Formats
Section titled “Formats”A JSON example of this model.
{ "title": "Example Project", "description": "Example project to serve community needs.", "amountRequested": { "amount": "100000", "currency": "USD" }, "opportunity": { "id": "083b4567-e89d-42c8-a439-6c1234567890", "title": "Example Opportunity", "customFields": { "agency": { "name": "Agency", "fieldType": "string", "value": "Department of Energy", "description": "The agency managing the funding opportunity." } } }, "projectTimeline": { "startDate": { "name": "Project Start Date", "eventType": "singleDate", "date": "2025-01-01" }, "endDate": { "name": "Project End Date", "eventType": "singleDate", "date": "2025-12-31" }, "otherDates": { "evaluationPeriod": { "name": "Evaluation Period", "eventType": "dateRange", "startDate": "2025-07-01", "endDate": "2025-08-31", "description": "The period during which the evaluation will be conducted." } } }, "contacts": { "primary": { "name": { "prefix": "Dr.", "firstName": "Jane", "lastName": "Smith" }, "emails": { "primary": "jane.smith@example.com" } }, "otherContacts": { "principalInvestigator": { "name": { "prefix": "Dr.", "firstName": "Alicia", "lastName": "Williams" }, "emails": { "primary": "alicia.williams@example.com" } }, "authorizedRepresentative": { "name": { "firstName": "John", "lastName": "Doe" }, "emails": { "primary": "john.doe@example.com" } } } }, "organizations": { "primary": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a", "name": "Example Organization", "mission": "To serve the community through innovative programs." }, "otherOrgs": { "fiscalSponsor": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6b", "name": "Fiscal Sponsor Organization", "mission": "To provide fiscal sponsorship services." }, "partner": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6c", "name": "Partner Organization", "mission": "To collaborate on community projects." } } }, "customFields": { "projectType": { "name": "Project Type", "fieldType": "string", "value": "research", "description": "The type of project being proposed" } }}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: ProposalBase.yamltype: objectproperties: title: type: string description: The title of the proposal and/or the project requesting funding. description: type: string description: The description of the proposal and/or the project requesting funding. amountRequested: $ref: Money.yaml description: The amount of money requested. projectTimeline: $ref: ProjectTimeline.yaml description: The key dates for the project. opportunity: $ref: ProposalOpportunity.yaml description: The opportunity to which this proposal is related organizations: $ref: ProposalOrgs.yaml description: The organization that is requesting funding. contacts: $ref: ProposalContacts.yaml description: The point of contact for the project. customFields: $ref: "#/$defs/RecordCustomField" description: The project's custom fields.examples: - title: Example Project description: Example project to serve community needs. amountRequested: amount: "100000" currency: USD opportunity: id: 083b4567-e89d-42c8-a439-6c1234567890 title: Example Opportunity customFields: agency: name: agency fieldType: string value: Department of Transportation description: The agency responsible for managing this opportunity projectTimeline: startDate: name: Project Start Date eventType: singleDate date: 2025-01-01 endDate: name: Project End Date eventType: singleDate date: 2025-12-31 otherDates: evaluationPeriod: name: Evaluation Period eventType: dateRange startDate: 2025-07-01 endDate: 2025-08-31 description: The period during which the evaluation will be conducted. contacts: primary: name: prefix: Dr. firstName: Jane middleName: Edward lastName: Doe suffix: Jr. title: Chief Executive Officer addresses: primary: street1: 123 Main St city: Anytown stateOrProvince: CA country: US postalCode: "12345" otherAddresses: work: street1: 123 Main St city: Anytown stateOrProvince: CA country: US postalCode: "12345" home: street1: 123 Main St city: Anytown stateOrProvince: CA country: US postalCode: "12345" phones: primary: countryCode: "+1" number: 444-456-1230 isMobile: true otherPhones: home: countryCode: "+1" number: 333-456-1230 isMobile: false emails: primary: john.doe@example.com otherEmails: work: john.doe@work.com personal: john.doe@gmail.com school: john.doe@school.edu otherContacts: principalInvestigator: name: prefix: Dr. firstName: Alicia lastName: Williams emails: primary: alicia.williams@example.com authorizedRepresentative: name: firstName: John lastName: Doe emails: primary: john.doe@example.com organizations: primary: id: 083b4567-e89d-42c8-a439-6c1234567890 name: Example Organization orgType: term: Hospital class: Organization types description: Institutions with the primary purpose of providing in-patient physical and mental health services... code: EO000000 ein: 12-3456789 uei: ABC1234567890 duns: "123456789012" addresses: primary: street1: 456 Main St street2: Suite 100 city: Anytown stateOrProvince: CA country: US postalCode: "12345" otherAddresses: satellite: street1: 456 Main St street2: Suite 100 city: Anytown stateOrProvince: CA country: US postalCode: "12345" international: street1: 123 Rue Principale city: Montreal stateOrProvince: QC country: CA postalCode: H2Y 1C6 phones: primary: countryCode: "+1" number: 444-456-1230 isMobile: true fax: countryCode: "+1" number: 555-123-4567 extension: "123" isMobile: false otherPhones: support: countryCode: "+1" number: 333-456-1230 isMobile: false marketing: countryCode: "+1" number: 444-456-1230 isMobile: true emails: primary: info@example.com otherEmails: support: support@example.com marketing: marketing@example.com mission: To provide support and resources to the community. yearFounded: "2024" socials: website: https://www.example.com facebook: https://www.facebook.com/example twitterOrX: https://x.com/example instagram: https://www.instagram.com/example linkedin: https://www.linkedin.com/company/example otherSocials: youtube: https://www.youtube.com/example otherOrgs: fiscalSponsor: id: 083b4567-e89d-42c8-a439-6c1234567890 name: Example Organization orgType: term: Hospital class: Organization types description: Institutions with the primary purpose of providing in-patient physical and mental health services... code: EO000000 ein: 12-3456789 uei: ABC1234567890 duns: "123456789012" addresses: primary: street1: 456 Main St street2: Suite 100 city: Anytown stateOrProvince: CA country: US postalCode: "12345" otherAddresses: satellite: street1: 456 Main St street2: Suite 100 city: Anytown stateOrProvince: CA country: US postalCode: "12345" international: street1: 123 Rue Principale city: Montreal stateOrProvince: QC country: CA postalCode: H2Y 1C6 phones: primary: countryCode: "+1" number: 444-456-1230 isMobile: true fax: countryCode: "+1" number: 555-123-4567 extension: "123" isMobile: false otherPhones: support: countryCode: "+1" number: 333-456-1230 isMobile: false marketing: countryCode: "+1" number: 444-456-1230 isMobile: true emails: primary: info@example.com otherEmails: support: support@example.com marketing: marketing@example.com mission: To provide support and resources to the community. yearFounded: "2024" socials: website: https://www.example.com facebook: https://www.facebook.com/example twitterOrX: https://x.com/example instagram: https://www.instagram.com/example linkedin: https://www.linkedin.com/company/example otherSocials: youtube: https://www.youtube.com/example partner: id: 083b4567-e89d-42c8-a439-6c1234567890 name: Example Organization orgType: term: Hospital class: Organization types description: Institutions with the primary purpose of providing in-patient physical and mental health services... code: EO000000 ein: 12-3456789 uei: ABC1234567890 duns: "123456789012" addresses: primary: street1: 456 Main St street2: Suite 100 city: Anytown stateOrProvince: CA country: US postalCode: "12345" otherAddresses: satellite: street1: 456 Main St street2: Suite 100 city: Anytown stateOrProvince: CA country: US postalCode: "12345" international: street1: 123 Rue Principale city: Montreal stateOrProvince: QC country: CA postalCode: H2Y 1C6 phones: primary: countryCode: "+1" number: 444-456-1230 isMobile: true fax: countryCode: "+1" number: 555-123-4567 extension: "123" isMobile: false otherPhones: support: countryCode: "+1" number: 333-456-1230 isMobile: false marketing: countryCode: "+1" number: 444-456-1230 isMobile: true emails: primary: info@example.com otherEmails: support: support@example.com marketing: marketing@example.com mission: To provide support and resources to the community. yearFounded: "2024" socials: website: https://www.example.com facebook: https://www.facebook.com/example twitterOrX: https://x.com/example instagram: https://www.instagram.com/example linkedin: https://www.linkedin.com/company/example otherSocials: youtube: https://www.youtube.com/exampledescription: A proposal for funding.$defs: RecordCustomField: type: object properties: {} unevaluatedProperties: $ref: CustomField.yaml
The TypeSpec code for this model.
/** A proposal for funding. */@example(Examples.Proposal.exampleProposal)model ProposalBase { /** The title of the proposal and/or the project requesting funding. */ title?: string;
/** The description of the proposal and/or the project requesting funding. */ description?: string;
/** The amount of money requested. */ amountRequested?: Fields.Money;
/** The key dates for the project. */ projectTimeline?: ProjectTimeline;
/** The opportunity to which this proposal is related */ opportunity?: ProposalOpportunity;
/** The organization that is requesting funding. */ organizations?: ProposalOrgs;
/** The point of contact for the project. */ contacts?: ProposalContacts;
/** The project's custom fields. */ customFields?: Record<Fields.CustomField>;}
ProposalOpportunity
Section titled “ProposalOpportunity”The opportunity to which this proposal is related.
Property | Type | Required | Description |
---|---|---|---|
id | uuid | Yes | The opportunity’s unique identifier |
title | string | No | The opportunity’s name |
customFields | Record<CustomField> | No | The opportunity’s custom fields |
Formats
Section titled “Formats”A JSON example of this model.
{ "id": "083b4567-e89d-42c8-a439-6c1234567890", "title": "Example Opportunity", "customFields": { "agency": { "name": "Agency", "fieldType": "string", "value": "Department of Energy", "description": "The agency managing the funding opportunity." } }}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: ProposalOpportunity.yamltype: objectproperties: id: $ref: uuid.yaml description: The opportunity's unique identifier. title: type: string description: The opportunity's name. customFields: $ref: "#/$defs/RecordCustomField" description: The opportunity's custom fields.required: - iddescription: The opportunity to which this proposal is related$defs: RecordCustomField: type: object properties: {} unevaluatedProperties: $ref: CustomField.yaml
The TypeSpec code for this model.
/** The opportunity to which this proposal is related */model ProposalOpportunity { /** The opportunity's unique identifier. */ id: Types.uuid;
/** The opportunity's name. */ title?: string;
/** The opportunity's custom fields. */ customFields?: Record<Fields.CustomField>;}
ProjectTimeline
Section titled “ProjectTimeline”The key dates for the project.
Property | Type | Required | Description |
---|---|---|---|
startDate | Event | No | The start date of the period for which the funding is requested |
endDate | Event | No | The end date of the period for which the funding is requested |
otherDates | Record<Event> | No | The key dates for the project |
timelineDetails | string | No | Details about the timeline that don’t fit into the other fields |
Formats
Section titled “Formats”A JSON example of this model.
{ "startDate": { "name": "Project Start Date", "eventType": "singleDate", "date": "2025-01-01" }, "endDate": { "name": "Project End Date", "eventType": "singleDate", "date": "2025-12-31" }, "otherDates": { "evaluationPeriod": { "name": "Evaluation Period", "eventType": "dateRange", "startDate": "2025-07-01", "endDate": "2025-08-31", "description": "The period during which the evaluation will be conducted." } }, "timelineDetails": "The project will be conducted over 12 months with quarterly milestones."}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: ProjectTimeline.yamltype: objectproperties: startDate: $ref: Event.yaml description: The start date of the period for which the funding is requested. endDate: $ref: Event.yaml description: The end date of the period for which the funding is requested. otherDates: $ref: "#/$defs/RecordEvent" description: The key dates for the project. timelineDetails: type: string description: Details about the timeline that don't fit into the other fields.$defs: RecordEvent: type: object properties: {} unevaluatedProperties: $ref: Event.yaml
The TypeSpec code for this model.
model ProjectTimeline { /** The start date of the period for which the funding is requested. */ startDate?: Fields.Event;
/** The end date of the period for which the funding is requested. */ endDate?: Fields.Event;
/** The key dates for the project. */ otherDates?: Record<Fields.Event>;
/** Details about the timeline that don't fit into the other fields. */ timelineDetails?: string;}
ProposalContacts
Section titled “ProposalContacts”The point of contact for the project.
Property | Type | Required | Description |
---|---|---|---|
primary | PersonBase | Yes | The primary point of contact for the proposal |
otherContacts | Record<PersonBase> | No | Other points of contact for the proposal (key personnel, representatives) |
Formats
Section titled “Formats”A JSON example of this model.
{ "primary": { "name": { "prefix": "Dr.", "firstName": "Jane", "lastName": "Smith" }, "emails": { "primary": "jane.smith@example.com" } }, "otherContacts": { "principalInvestigator": { "name": { "prefix": "Dr.", "firstName": "Alicia", "lastName": "Williams" }, "emails": { "primary": "alicia.williams@example.com" } }, "authorizedRepresentative": { "name": { "firstName": "John", "lastName": "Doe" }, "emails": { "primary": "john.doe@example.com" } } }}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: ProposalContacts.yamltype: objectproperties: primary: $ref: PersonBase.yaml description: The primary point of contact for the proposal. otherContacts: $ref: "#/$defs/RecordPersonBase" description: Other points of contact for the proposal. For example, key personnel, authorized representatives, etc.required: - primary$defs: RecordPersonBase: type: object properties: {} unevaluatedProperties: $ref: PersonBase.yaml
The TypeSpec code for this model.
model ProposalContacts { /** The primary point of contact for the proposal. */ primary: PersonBase;
/** Other points of contact for the proposal. For example, key personnel, authorized representatives, etc. */ otherContacts?: Record<PersonBase>;}
ProposalOrgs
Section titled “ProposalOrgs”The organization that is requesting funding.
Property | Type | Required | Description |
---|---|---|---|
primary | OrganizationBase | Yes | The primary organization that is requesting funding |
otherOrgs | Record<OrganizationBase> | No | Other organizations supporting the proposal (fiscal sponsor, partners, etc.) |
Formats
Section titled “Formats”A JSON example of this model.
{ "primary": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a", "name": "Example Organization", "mission": "To serve the community through innovative programs." }, "otherOrgs": { "fiscalSponsor": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6b", "name": "Fiscal Sponsor Organization", "mission": "To provide fiscal sponsorship services." }, "partner": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6c", "name": "Partner Organization", "mission": "To collaborate on community projects." } }}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: ProposalOrgs.yamltype: objectproperties: primary: $ref: OrganizationBase.yaml description: The primary organization that is requesting funding. otherOrgs: $ref: "#/$defs/RecordOrganizationBase" description: Other organizations that are supporting the proposal. For example, a fiscal sponsor, partners, etc.required: - primary$defs: RecordOrganizationBase: type: object properties: {} unevaluatedProperties: $ref: OrganizationBase.yaml
The TypeSpec code for this model.
model ProposalOrgs { /** The primary organization that is requesting funding. */ primary: OrganizationBase;
/** Other organizations that are supporting the proposal. For example, a fiscal sponsor, partners, etc. */ otherOrgs?: Record<OrganizationBase>;}