service:
  auth: false
  base-path: ""
  endpoints:
    getAccount:
      method: GET
      path: /account/{account_id}
      path-parameters:
        account_id: string
      response: Account

types:
  Memo:
    properties:
      description: string
      account: optional<Account>
  
  BaseResource:
    properties:
      id: string
      related_resources: list<ResourceList>
      memo: Memo
  
  ResourceList:
    discriminated: false
    union:
      - Account
      - Patient
      - Practitioner
      - Script
  
  Account:
    extends: BaseResource
    properties:
      resource_type: literal<"Account">
      name: string
      patient: optional<Patient>
      practitioner: optional<Practitioner>

  Patient:
    extends: BaseResource
    properties:
      resource_type: literal<"Patient">
      name: string
      scripts: list<Script>

  Practitioner:
    extends: BaseResource
    properties:
      resource_type: literal<"Practitioner">
      name: string

  Script:
    extends: BaseResource
    properties:
      resource_type: literal<"Script">
      name: string

