{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://companioncontext.org/schemas/ccp-core.schema.json",
  "title": "Companion Context Protocol Core",
  "type": "object",
  "$defs": {
    "VisibilityClass": {
      "type": "string",
      "enum": [
        "owner_visible",
        "caregiver_visible",
        "staff_only",
        "vet_shareable",
        "facility_shareable",
        "commerce_safe",
        "agent_summary_only",
        "restricted_sensitive",
        "care_network_visible",
        "contact_shareable",
        "action_authorization_visible"
      ]
    },
    "Scope": {
      "type": "string",
      "enum": [
        "pet.profile.read",
        "pet.diet.read",
        "pet.commerce_context.read",
        "pet.permission_grants.read",
        "pet.product_exclusions.read",
        "pet.preferences.read",
        "pet.purchase_history.summary.read",
        "pet.facility_booking_context.read",
        "pet.care_instructions.read",
        "pet.feeding_instructions.read",
        "pet.vaccinations.status.read",
        "pet.pickup_authorization.read",
        "pet.emergency_contacts.read",
        "pet.medications.administration.read",
        "pet.care_network.actor_refs.read",
        "pet.care_network.relationships.read",
        "pet.care_network.contact_channels.read",
        "pet.care_network.action_authorizations.read",
        "pet.care_network.revocation_status.read"
      ]
    },
    "Purpose": {
      "type": "string",
      "enum": [
        "product_recommendation",
        "product_filtering",
        "boarding_preparation",
        "pickup_verification",
        "care_network_lookup"
      ]
    },
    "OmissionReasonCode": {
      "type": "string",
      "enum": [
        "not_requested",
        "scope_missing",
        "purpose_not_allowed",
        "visibility_restricted",
        "grant_expired",
        "grant_revoked",
        "facility_mismatch",
        "service_window_inactive",
        "source_stale",
        "not_available",
        "summary_only"
      ]
    },
    "ActorType": {
      "type": "string",
      "enum": [
        "owner",
        "caregiver",
        "facility",
        "merchant",
        "agent_client",
        "service_integration",
        "vet"
      ]
    },
    "CareNetworkActorType": {
      "type": "string",
      "enum": [
        "owner",
        "caregiver",
        "family_contact",
        "friend_contact",
        "pickup_contact",
        "emergency_contact",
        "facility_staff",
        "organization",
        "integration_client"
      ]
    },
    "SensitiveKeywordPattern": {
      "not": {
        "pattern": "[Bb][Ii][Ll][Ll][Ii][Nn][Gg]|[Pp][Aa][Yy][Mm][Ee][Nn][Tt]|[Hh][Oo][Uu][Ss][Ee][Hh][Oo][Ll][Dd]|[Mm][Ee][Dd][Ii][Cc][Aa][Ll]|[Dd][Ii][Aa][Gg][Nn][Oo][Ss][Ii][Ss]|[Tt][Rr][Ee][Aa][Tt][Mm][Ee][Nn][Tt]|[Ss][Tt][Aa][Ff][Ff][- _][Oo][Nn][Ll][Yy]|[Ss][Tt][Aa][Ff][Ff][- _][Nn][Oo][Tt][Ee]|[Rr][Ee][Ll][Aa][Tt][Ii][Oo][Nn][Ss][Hh][Ii][Pp][- _][Dd][Ii][Ss][Pp][Uu][Tt][Ee]|[Cc][Uu][Ss][Tt][Oo][Dd][Yy]|[Ii][Dd][Ee][Nn][Tt][Ii][Tt][Yy][- _][Dd][Oo][Cc][Uu][Mm][Ee][Nn][Tt]"
      }
    },
    "VisibilitySet": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "$ref": "#/$defs/VisibilityClass"
      },
      "allOf": [
        {
          "not": {
            "allOf": [
              {
                "contains": {
                  "const": "commerce_safe"
                }
              },
              {
                "contains": {
                  "enum": [
                    "staff_only",
                    "restricted_sensitive"
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "CommerceVisibilitySet": {
      "allOf": [
        {
          "$ref": "#/$defs/VisibilitySet"
        },
        {
          "contains": {
            "const": "commerce_safe"
          }
        },
        {
          "not": {
            "contains": {
              "enum": [
                "staff_only",
                "restricted_sensitive",
                "facility_shareable",
                "care_network_visible",
                "contact_shareable",
                "action_authorization_visible"
              ]
            }
          }
        }
      ]
    },
    "FacilityVisibilitySet": {
      "allOf": [
        {
          "$ref": "#/$defs/VisibilitySet"
        },
        {
          "not": {
            "contains": {
              "enum": [
                "staff_only",
                "restricted_sensitive",
                "commerce_safe",
                "care_network_visible",
                "contact_shareable",
                "action_authorization_visible"
              ]
            }
          }
        },
        {
          "contains": {
            "const": "facility_shareable"
          }
        }
      ]
    },
    "CommerceObjectMetadata": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "visibility",
        "provenance"
      ],
      "properties": {
        "visibility": {
          "$ref": "#/$defs/CommerceVisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "CommerceStringField": {
      "allOf": [
        {
          "$ref": "#/$defs/StringField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceStringArrayField": {
      "allOf": [
        {
          "$ref": "#/$defs/StringArrayField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceBooleanField": {
      "allOf": [
        {
          "$ref": "#/$defs/BooleanField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceNumberField": {
      "allOf": [
        {
          "$ref": "#/$defs/NumberField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceWeightField": {
      "allOf": [
        {
          "$ref": "#/$defs/WeightField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceSpeciesField": {
      "allOf": [
        {
          "$ref": "#/$defs/SpeciesField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceSexField": {
      "allOf": [
        {
          "$ref": "#/$defs/SexField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceLifeStageField": {
      "allOf": [
        {
          "$ref": "#/$defs/LifeStageField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "CommerceSizeClassField": {
      "allOf": [
        {
          "$ref": "#/$defs/SizeClassField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CommerceVisibilitySet"
            }
          }
        }
      ]
    },
    "FacilityObjectMetadata": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "visibility",
        "provenance"
      ],
      "properties": {
        "visibility": {
          "$ref": "#/$defs/FacilityVisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "FacilityStringField": {
      "allOf": [
        {
          "$ref": "#/$defs/StringField"
        },
        {
          "properties": {
            "value": {
              "$ref": "#/$defs/SensitiveKeywordPattern"
            },
            "visibility": {
              "$ref": "#/$defs/FacilityVisibilitySet"
            }
          }
        }
      ]
    },
    "FacilityStringArrayField": {
      "allOf": [
        {
          "$ref": "#/$defs/StringArrayField"
        },
        {
          "properties": {
            "value": {
              "items": {
                "$ref": "#/$defs/SensitiveKeywordPattern"
              }
            },
            "visibility": {
              "$ref": "#/$defs/FacilityVisibilitySet"
            }
          }
        }
      ]
    },
    "FacilityBooleanField": {
      "allOf": [
        {
          "$ref": "#/$defs/BooleanField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/FacilityVisibilitySet"
            }
          }
        }
      ]
    },
    "FacilityNumberField": {
      "allOf": [
        {
          "$ref": "#/$defs/NumberField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/FacilityVisibilitySet"
            }
          }
        }
      ]
    },
    "CommercePurchaseHistorySummary": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "last_purchase_at": {
          "$ref": "#/$defs/CommerceStringField"
        },
        "preferred_categories": {
          "$ref": "#/$defs/CommerceStringArrayField"
        },
        "metadata": {
          "$ref": "#/$defs/CommerceObjectMetadata"
        }
      },
      "required": [
        "metadata"
      ],
      "anyOf": [
        {
          "required": [
            "last_purchase_at"
          ]
        },
        {
          "required": [
            "preferred_categories"
          ]
        }
      ]
    },
    "CommercePetProfile": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "pet_id",
        "metadata"
      ],
      "properties": {
        "pet_id": {
          "type": "string"
        },
        "display_name": {
          "$ref": "#/$defs/CommerceStringField"
        },
        "species": {
          "$ref": "#/$defs/CommerceSpeciesField"
        },
        "breed": {
          "$ref": "#/$defs/CommerceStringField"
        },
        "breed_mix": {
          "$ref": "#/$defs/CommerceBooleanField"
        },
        "sex": {
          "$ref": "#/$defs/CommerceSexField"
        },
        "age_years": {
          "$ref": "#/$defs/CommerceNumberField"
        },
        "life_stage": {
          "$ref": "#/$defs/CommerceLifeStageField"
        },
        "weight": {
          "$ref": "#/$defs/CommerceWeightField"
        },
        "size_class": {
          "$ref": "#/$defs/CommerceSizeClassField"
        },
        "metadata": {
          "$ref": "#/$defs/CommerceObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "display_name"
          ]
        },
        {
          "required": [
            "species"
          ]
        },
        {
          "required": [
            "breed"
          ]
        },
        {
          "required": [
            "breed_mix"
          ]
        },
        {
          "required": [
            "sex"
          ]
        },
        {
          "required": [
            "age_years"
          ]
        },
        {
          "required": [
            "life_stage"
          ]
        },
        {
          "required": [
            "weight"
          ]
        },
        {
          "required": [
            "size_class"
          ]
        }
      ]
    },
    "CommerceDietProfile": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "diet_profile_id",
        "pet_id",
        "metadata"
      ],
      "properties": {
        "diet_profile_id": {
          "type": "string"
        },
        "pet_id": {
          "type": "string"
        },
        "food_brands": {
          "$ref": "#/$defs/CommerceStringArrayField"
        },
        "proteins": {
          "$ref": "#/$defs/CommerceStringArrayField"
        },
        "feeding_schedule": {
          "$ref": "#/$defs/CommerceStringField"
        },
        "allergies": {
          "$ref": "#/$defs/CommerceStringArrayField"
        },
        "sensitivities": {
          "$ref": "#/$defs/CommerceStringArrayField"
        },
        "treats_allowed": {
          "$ref": "#/$defs/CommerceBooleanField"
        },
        "product_exclusions": {
          "$ref": "#/$defs/CommerceStringArrayField"
        },
        "owner_notes_summary": {
          "$ref": "#/$defs/CommerceStringField"
        },
        "metadata": {
          "$ref": "#/$defs/CommerceObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "food_brands"
          ]
        },
        {
          "required": [
            "proteins"
          ]
        },
        {
          "required": [
            "feeding_schedule"
          ]
        },
        {
          "required": [
            "allergies"
          ]
        },
        {
          "required": [
            "sensitivities"
          ]
        },
        {
          "required": [
            "treats_allowed"
          ]
        },
        {
          "required": [
            "product_exclusions"
          ]
        },
        {
          "required": [
            "owner_notes_summary"
          ]
        }
      ]
    },
    "ContextProvenance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "source_type",
        "recorded_at"
      ],
      "properties": {
        "source_type": {
          "type": "string",
          "enum": [
            "owner_entered",
            "caregiver_entered",
            "staff_observed",
            "vet_verified",
            "imported",
            "inferred",
            "generated"
          ]
        },
        "source_actor_id": {
          "type": "string"
        },
        "source_system": {
          "type": "string"
        },
        "recorded_at": {
          "type": "string",
          "format": "date-time"
        },
        "verified_at": {
          "type": "string",
          "format": "date-time"
        },
        "confidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "stale_after": {
          "type": "string",
          "format": "date-time"
        },
        "source_record_ref": {
          "type": "string"
        },
        "derived_from": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "source_type": {
                "const": "generated"
              }
            },
            "required": [
              "source_type"
            ]
          },
          "then": {
            "required": [
              "source_system",
              "derived_from"
            ]
          }
        }
      ]
    },
    "StringField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "string"
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "StringArrayField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "BooleanField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "boolean"
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "NumberField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "number"
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "Weight": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "type": "number",
          "minimum": 0
        },
        "unit": {
          "type": "string",
          "enum": [
            "lb",
            "kg"
          ]
        }
      }
    },
    "WeightField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "$ref": "#/$defs/Weight"
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "SpeciesField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "string",
          "enum": [
            "dog",
            "cat",
            "other"
          ]
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "SexField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "string",
          "enum": [
            "female",
            "male",
            "unknown"
          ]
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "LifeStageField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "string",
          "enum": [
            "puppy",
            "kitten",
            "adult",
            "senior",
            "unknown"
          ]
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "SizeClassField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value",
        "visibility",
        "provenance"
      ],
      "properties": {
        "value": {
          "type": "string",
          "enum": [
            "toy",
            "small",
            "medium",
            "large",
            "giant",
            "unknown"
          ]
        },
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "ObjectMetadata": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "visibility",
        "provenance"
      ],
      "properties": {
        "visibility": {
          "$ref": "#/$defs/VisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/ContextProvenance"
        }
      }
    },
    "PetProfile": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "pet_id",
        "display_name",
        "species",
        "life_stage",
        "size_class",
        "metadata"
      ],
      "properties": {
        "pet_id": {
          "type": "string"
        },
        "display_name": {
          "$ref": "#/$defs/StringField"
        },
        "species": {
          "$ref": "#/$defs/SpeciesField"
        },
        "breed": {
          "$ref": "#/$defs/StringField"
        },
        "breed_mix": {
          "$ref": "#/$defs/BooleanField"
        },
        "sex": {
          "$ref": "#/$defs/SexField"
        },
        "age_years": {
          "$ref": "#/$defs/NumberField"
        },
        "life_stage": {
          "$ref": "#/$defs/LifeStageField"
        },
        "weight": {
          "$ref": "#/$defs/WeightField"
        },
        "size_class": {
          "$ref": "#/$defs/SizeClassField"
        },
        "metadata": {
          "$ref": "#/$defs/ObjectMetadata"
        }
      }
    },
    "DietProfile": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "diet_profile_id",
        "pet_id",
        "allergies",
        "sensitivities",
        "product_exclusions",
        "metadata"
      ],
      "properties": {
        "diet_profile_id": {
          "type": "string"
        },
        "pet_id": {
          "type": "string"
        },
        "food_brands": {
          "$ref": "#/$defs/StringArrayField"
        },
        "proteins": {
          "$ref": "#/$defs/StringArrayField"
        },
        "feeding_schedule": {
          "$ref": "#/$defs/StringField"
        },
        "allergies": {
          "$ref": "#/$defs/StringArrayField"
        },
        "sensitivities": {
          "$ref": "#/$defs/StringArrayField"
        },
        "treats_allowed": {
          "$ref": "#/$defs/BooleanField"
        },
        "product_exclusions": {
          "$ref": "#/$defs/StringArrayField"
        },
        "owner_notes_summary": {
          "$ref": "#/$defs/StringField"
        },
        "metadata": {
          "$ref": "#/$defs/ObjectMetadata"
        }
      }
    },
    "PurchaseHistorySummary": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "last_purchase_at": {
          "$ref": "#/$defs/StringField"
        },
        "preferred_categories": {
          "$ref": "#/$defs/StringArrayField"
        },
        "metadata": {
          "$ref": "#/$defs/ObjectMetadata"
        }
      },
      "required": [
        "metadata"
      ]
    },
    "ServiceWindow": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "starts_at",
        "ends_at"
      ],
      "properties": {
        "starts_at": {
          "type": "string",
          "format": "date-time"
        },
        "ends_at": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "FacilityBookingContext": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "metadata"
      ],
      "properties": {
        "eligibility_status": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "missing_required_context": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "service_restrictions": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "required_owner_approvals": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "eligibility_status"
          ]
        },
        {
          "required": [
            "missing_required_context"
          ]
        },
        {
          "required": [
            "service_restrictions"
          ]
        },
        {
          "required": [
            "required_owner_approvals"
          ]
        }
      ]
    },
    "CareInstructions": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "metadata"
      ],
      "properties": {
        "handling_summary": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "comfort_routines": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "rest_preferences": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "playgroup_constraints": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "stress_triggers": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "activity_restrictions": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "handling_summary"
          ]
        },
        {
          "required": [
            "comfort_routines"
          ]
        },
        {
          "required": [
            "rest_preferences"
          ]
        },
        {
          "required": [
            "playgroup_constraints"
          ]
        },
        {
          "required": [
            "stress_triggers"
          ]
        },
        {
          "required": [
            "activity_restrictions"
          ]
        }
      ]
    },
    "FeedingInstructions": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "metadata"
      ],
      "properties": {
        "food_description": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "portion": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "schedule": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "treat_rules": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "allergy_notes": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "sensitivity_notes": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "owner_supplied_food": {
          "$ref": "#/$defs/FacilityBooleanField"
        },
        "substitution_constraints": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "food_description"
          ]
        },
        {
          "required": [
            "portion"
          ]
        },
        {
          "required": [
            "schedule"
          ]
        },
        {
          "required": [
            "treat_rules"
          ]
        },
        {
          "required": [
            "allergy_notes"
          ]
        },
        {
          "required": [
            "sensitivity_notes"
          ]
        },
        {
          "required": [
            "owner_supplied_food"
          ]
        },
        {
          "required": [
            "substitution_constraints"
          ]
        }
      ]
    },
    "VaccinationStatus": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "metadata"
      ],
      "properties": {
        "vaccine_name": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "status": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "expires_at": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "proof_status": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "verification_source": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "verified_at": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "vaccine_name"
          ]
        },
        {
          "required": [
            "status"
          ]
        },
        {
          "required": [
            "expires_at"
          ]
        },
        {
          "required": [
            "proof_status"
          ]
        },
        {
          "required": [
            "verification_source"
          ]
        },
        {
          "required": [
            "verified_at"
          ]
        }
      ]
    },
    "PickupAuthorization": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "authorized_actor_id",
        "metadata"
      ],
      "properties": {
        "authorized_actor_id": {
          "type": "string"
        },
        "display_name": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "relationship": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "contact_channel": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "authorization_source": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "expires_at": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "identity_check_required": {
          "$ref": "#/$defs/FacilityBooleanField"
        },
        "constraints": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "revocation_status": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      }
    },
    "PickupActor": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "actor_id",
        "actor_type",
        "metadata"
      ],
      "properties": {
        "actor_id": {
          "type": "string"
        },
        "actor_type": {
          "allOf": [
            {
              "$ref": "#/$defs/FacilityStringField"
            },
            {
              "properties": {
                "value": {
                  "$ref": "#/$defs/CareNetworkActorType"
                }
              }
            }
          ]
        },
        "display_name": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "relationship": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "role": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "contact_channel": {
          "allOf": [
            {
              "$ref": "#/$defs/FacilityStringField"
            },
            {
              "properties": {
                "value": {
                  "enum": [
                    "app_message",
                    "in_app",
                    "sms",
                    "phone",
                    "email",
                    "secure_message",
                    "facility_counter"
                  ]
                }
              }
            }
          ]
        },
        "care_network_source": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      }
    },
    "ReleaseConstraint": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "constraint_type",
        "metadata"
      ],
      "properties": {
        "constraint_type": {
          "allOf": [
            {
              "$ref": "#/$defs/FacilityStringField"
            },
            {
              "properties": {
                "value": {
                  "enum": [
                    "specific_window_only",
                    "specific_location_only",
                    "owner_confirmation_required",
                    "photo_or_id_check_required",
                    "code_required",
                    "do_not_release",
                    "staff_manager_review_required"
                  ]
                }
              }
            }
          ]
        },
        "summary": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "applies_until": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "source": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      }
    },
    "PickupAuthorizationVerification": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "authorization_status",
        "metadata"
      ],
      "properties": {
        "authorization_status": {
          "allOf": [
            {
              "$ref": "#/$defs/FacilityStringField"
            },
            {
              "properties": {
                "value": {
                  "enum": [
                    "authorized",
                    "not_authorized",
                    "expired",
                    "revoked",
                    "unknown",
                    "owner_confirmation_required"
                  ]
                }
              }
            }
          ]
        },
        "authorization_source": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "authorized_by_actor_id": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "effective_at": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "expires_at": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "revocation_status": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "identity_check_required": {
          "$ref": "#/$defs/FacilityBooleanField"
        },
        "identity_check_method": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "release_allowed": {
          "$ref": "#/$defs/FacilityBooleanField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      }
    },
    "PickupVerificationContext": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "pet_id",
        "purpose",
        "facility_id",
        "service_id",
        "service_type",
        "service_window",
        "pickup_actor",
        "pickup_authorization",
        "metadata"
      ],
      "properties": {
        "pet_id": {
          "type": "string"
        },
        "purpose": {
          "const": "pickup_verification"
        },
        "facility_id": {
          "type": "string"
        },
        "service_id": {
          "type": "string"
        },
        "service_type": {
          "type": "string"
        },
        "service_window": {
          "$ref": "#/$defs/ServiceWindow"
        },
        "pickup_actor": {
          "$ref": "#/$defs/PickupActor"
        },
        "pickup_authorization": {
          "$ref": "#/$defs/PickupAuthorizationVerification"
        },
        "release_constraints": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ReleaseConstraint"
          }
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      }
    },
    "EmergencyContact": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "contact_actor_id",
        "metadata"
      ],
      "properties": {
        "contact_actor_id": {
          "type": "string"
        },
        "display_name": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "role": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "preferred_contact_channel": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "contact_priority": {
          "$ref": "#/$defs/FacilityNumberField"
        },
        "service_window_applicability": {
          "$ref": "#/$defs/FacilityStringField"
        },
        "restrictions": {
          "$ref": "#/$defs/FacilityStringArrayField"
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      }
    },
    "CareFacilityContext": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "pet_id",
        "purpose",
        "facility_id",
        "service_type",
        "service_window",
        "metadata"
      ],
      "properties": {
        "pet_id": {
          "type": "string"
        },
        "purpose": {
          "const": "boarding_preparation"
        },
        "facility_id": {
          "type": "string"
        },
        "service_id": {
          "type": "string"
        },
        "service_type": {
          "type": "string",
          "enum": [
            "boarding"
          ]
        },
        "service_window": {
          "$ref": "#/$defs/ServiceWindow"
        },
        "booking_context": {
          "$ref": "#/$defs/FacilityBookingContext"
        },
        "care_instructions": {
          "$ref": "#/$defs/CareInstructions"
        },
        "feeding_instructions": {
          "$ref": "#/$defs/FeedingInstructions"
        },
        "vaccination_status": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/VaccinationStatus"
          }
        },
        "pickup_authorization": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PickupAuthorization"
          }
        },
        "emergency_contacts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EmergencyContact"
          }
        },
        "metadata": {
          "$ref": "#/$defs/FacilityObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "booking_context"
          ]
        },
        {
          "required": [
            "care_instructions"
          ]
        },
        {
          "required": [
            "feeding_instructions"
          ]
        },
        {
          "required": [
            "vaccination_status"
          ]
        },
        {
          "required": [
            "pickup_authorization"
          ]
        },
        {
          "required": [
            "emergency_contacts"
          ]
        }
      ]
    },
    "CommerceContext": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "pet_id",
        "purpose",
        "metadata"
      ],
      "properties": {
        "pet_id": {
          "type": "string"
        },
        "purpose": {
          "$ref": "#/$defs/Purpose"
        },
        "pet_profile": {
          "$ref": "#/$defs/CommercePetProfile"
        },
        "diet_profile": {
          "$ref": "#/$defs/CommerceDietProfile"
        },
        "preferences": {
          "$ref": "#/$defs/CommerceStringArrayField"
        },
        "purchase_history_summary": {
          "$ref": "#/$defs/CommercePurchaseHistorySummary"
        },
        "metadata": {
          "$ref": "#/$defs/CommerceObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "pet_profile"
          ]
        },
        {
          "required": [
            "diet_profile"
          ]
        },
        {
          "required": [
            "preferences"
          ]
        },
        {
          "required": [
            "purchase_history_summary"
          ]
        }
      ]
    },
    "PermissionGrant": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "grant_id",
        "subject_pet_id",
        "grantor_actor_id",
        "grantor_actor_type",
        "grantee_actor_id",
        "grantee_actor_type",
        "scopes",
        "purposes",
        "status",
        "created_at"
      ],
      "properties": {
        "grant_id": {
          "type": "string"
        },
        "subject_pet_id": {
          "type": "string"
        },
        "grantor_actor_id": {
          "type": "string"
        },
        "grantor_actor_type": {
          "$ref": "#/$defs/ActorType"
        },
        "grantee_actor_id": {
          "type": "string"
        },
        "grantee_actor_type": {
          "$ref": "#/$defs/ActorType"
        },
        "facility_id": {
          "type": "string"
        },
        "service_id": {
          "type": "string"
        },
        "service_type": {
          "type": "string"
        },
        "service_window": {
          "$ref": "#/$defs/ServiceWindow"
        },
        "scopes": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Scope"
          }
        },
        "purposes": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Purpose"
          }
        },
        "expires_at": {
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "expired",
            "revoked"
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "revoked_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "const": "active"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "not": {
              "required": [
                "revoked_at"
              ]
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "revoked"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "required": [
              "revoked_at"
            ]
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "expired"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "required": [
              "expires_at"
            ]
          }
        }
      ]
    },
    "AuthorizationDecision": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "decision",
        "evaluated_at",
        "requester_actor_id",
        "requester_actor_type",
        "pet_id",
        "purpose",
        "applied_scopes",
        "denied_scopes",
        "reasons"
      ],
      "properties": {
        "decision": {
          "type": "string",
          "enum": [
            "allowed",
            "partial",
            "denied"
          ]
        },
        "evaluated_at": {
          "type": "string",
          "format": "date-time"
        },
        "requester_actor_id": {
          "type": "string"
        },
        "requester_actor_type": {
          "$ref": "#/$defs/ActorType"
        },
        "pet_id": {
          "type": "string"
        },
        "purpose": {
          "$ref": "#/$defs/Purpose"
        },
        "grant_id": {
          "type": "string"
        },
        "applied_scopes": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Scope"
          }
        },
        "denied_scopes": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Scope"
          }
        },
        "reasons": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Omission": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "field",
        "reason"
      ],
      "properties": {
        "field": {
          "type": "string"
        },
        "reason": {
          "$ref": "#/$defs/OmissionReasonCode"
        },
        "visibility_class": {
          "$ref": "#/$defs/VisibilityClass"
        },
        "required_scope": {
          "$ref": "#/$defs/Scope"
        },
        "detail": {
          "type": "string"
        }
      }
    },
    "CommerceContextRequest": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "requester_actor_id",
        "requester_actor_type",
        "pet_id",
        "purpose",
        "scopes"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "requester_actor_id": {
          "type": "string"
        },
        "requester_actor_type": {
          "$ref": "#/$defs/ActorType"
        },
        "pet_id": {
          "type": "string"
        },
        "purpose": {
          "$ref": "#/$defs/Purpose"
        },
        "scopes": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Scope"
          }
        },
        "grant_id": {
          "type": "string"
        }
      }
    },
    "CareFacilityContextRequest": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "requester_actor_id",
        "requester_actor_type",
        "pet_id",
        "facility_id",
        "service_id",
        "service_type",
        "service_window",
        "purpose",
        "scopes",
        "grant_id"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "requester_actor_id": {
          "type": "string"
        },
        "requester_actor_type": {
          "$ref": "#/$defs/ActorType"
        },
        "pet_id": {
          "type": "string"
        },
        "facility_id": {
          "type": "string"
        },
        "service_id": {
          "type": "string"
        },
        "service_type": {
          "type": "string",
          "enum": [
            "boarding"
          ]
        },
        "service_window": {
          "$ref": "#/$defs/ServiceWindow"
        },
        "purpose": {
          "const": "boarding_preparation"
        },
        "scopes": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Scope"
          }
        },
        "grant_id": {
          "type": "string"
        }
      }
    },
    "CareFacilityPickupVerificationRequest": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "requester_actor_id",
        "requester_actor_type",
        "pet_id",
        "facility_id",
        "service_id",
        "service_type",
        "service_window",
        "purpose",
        "scopes",
        "grant_id",
        "pickup_actor_id",
        "pickup_actor_type"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "requester_actor_id": {
          "type": "string"
        },
        "requester_actor_type": {
          "$ref": "#/$defs/ActorType"
        },
        "pet_id": {
          "type": "string"
        },
        "facility_id": {
          "type": "string"
        },
        "service_id": {
          "type": "string"
        },
        "service_type": {
          "type": "string"
        },
        "service_window": {
          "$ref": "#/$defs/ServiceWindow"
        },
        "purpose": {
          "const": "pickup_verification"
        },
        "scopes": {
          "type": "array",
          "minItems": 1,
          "maxItems": 1,
          "uniqueItems": true,
          "items": {
            "const": "pet.pickup_authorization.read"
          }
        },
        "grant_id": {
          "type": "string"
        },
        "pickup_actor_id": {
          "type": "string"
        },
        "pickup_actor_type": {
          "$ref": "#/$defs/CareNetworkActorType"
        }
      }
    },
    "CommerceContextResponse": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "status",
        "authorization_decision",
        "commerce_context",
        "omissions"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "ok",
            "partial",
            "denied"
          ]
        },
        "authorization_decision": {
          "$ref": "#/$defs/AuthorizationDecision"
        },
        "commerce_context": {
          "anyOf": [
            {
              "$ref": "#/$defs/CommerceContext"
            },
            {
              "type": "null"
            }
          ]
        },
        "omissions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Omission"
          }
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "const": "ok"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "allowed"
                  },
                  "denied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "commerce_context": {
                "$ref": "#/$defs/CommerceContext"
              },
              "omissions": {
                "maxItems": 0
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "partial"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "partial"
                  }
                }
              },
              "commerce_context": {
                "$ref": "#/$defs/CommerceContext"
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "denied"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "denied"
                  },
                  "applied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "commerce_context": {
                "type": "null"
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        }
      ]
    },
    "CareFacilityPickupVerificationResponse": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "status",
        "authorization_decision",
        "pickup_verification_context",
        "omissions"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "ok",
            "partial",
            "denied"
          ]
        },
        "authorization_decision": {
          "allOf": [
            {
              "$ref": "#/$defs/AuthorizationDecision"
            },
            {
              "properties": {
                "purpose": {
                  "const": "pickup_verification"
                },
                "applied_scopes": {
                  "items": {
                    "const": "pet.pickup_authorization.read"
                  }
                },
                "denied_scopes": {
                  "items": {
                    "const": "pet.pickup_authorization.read"
                  }
                },
                "reasons": {
                  "items": {
                    "$ref": "#/$defs/SensitiveKeywordPattern"
                  }
                }
              }
            }
          ]
        },
        "pickup_verification_context": {
          "anyOf": [
            {
              "$ref": "#/$defs/PickupVerificationContext"
            },
            {
              "type": "null"
            }
          ]
        },
        "omissions": {
          "type": "array",
          "items": {
            "allOf": [
              {
                "$ref": "#/$defs/Omission"
              },
              {
                "properties": {
                  "detail": {
                    "$ref": "#/$defs/SensitiveKeywordPattern"
                  }
                }
              }
            ]
          }
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "const": "ok"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "allowed"
                  },
                  "denied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "pickup_verification_context": {
                "allOf": [
                  {
                    "$ref": "#/$defs/PickupVerificationContext"
                  },
                  {
                    "properties": {
                      "pickup_authorization": {
                        "required": [
                          "release_allowed"
                        ],
                        "properties": {
                          "authorization_status": {
                            "properties": {
                              "value": {
                                "const": "authorized"
                              }
                            }
                          },
                          "release_allowed": {
                            "properties": {
                              "value": {
                                "const": true
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                ]
              },
              "omissions": {
                "maxItems": 0
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "partial"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "partial"
                  }
                }
              },
              "pickup_verification_context": {
                "allOf": [
                  {
                    "$ref": "#/$defs/PickupVerificationContext"
                  },
                  {
                    "properties": {
                      "pickup_authorization": {
                        "properties": {
                          "authorization_status": {
                            "properties": {
                              "value": {
                                "not": {
                                  "const": "authorized"
                                }
                              }
                            }
                          },
                          "release_allowed": {
                            "properties": {
                              "value": {
                                "not": {
                                  "const": true
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                ]
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "denied"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "denied"
                  },
                  "applied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "pickup_verification_context": {
                "type": "null"
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        }
      ]
    },
    "CareFacilityContextResponse": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "status",
        "authorization_decision",
        "care_facility_context",
        "omissions"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "ok",
            "partial",
            "denied"
          ]
        },
        "authorization_decision": {
          "allOf": [
            {
              "$ref": "#/$defs/AuthorizationDecision"
            },
            {
              "properties": {
                "purpose": {
                  "const": "boarding_preparation"
                }
              }
            }
          ]
        },
        "care_facility_context": {
          "anyOf": [
            {
              "$ref": "#/$defs/CareFacilityContext"
            },
            {
              "type": "null"
            }
          ]
        },
        "omissions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Omission"
          }
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "const": "ok"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "allowed"
                  },
                  "denied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "care_facility_context": {
                "$ref": "#/$defs/CareFacilityContext"
              },
              "omissions": {
                "maxItems": 0
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "partial"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "partial"
                  }
                }
              },
              "care_facility_context": {
                "$ref": "#/$defs/CareFacilityContext"
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "denied"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "denied"
                  },
                  "applied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "care_facility_context": {
                "type": "null"
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        }
      ]
    },
    "CareNetworkVisibilitySet": {
      "allOf": [
        {
          "$ref": "#/$defs/VisibilitySet"
        },
        {
          "contains": {
            "enum": [
              "care_network_visible",
              "contact_shareable",
              "action_authorization_visible"
            ]
          }
        },
        {
          "not": {
            "contains": {
              "enum": [
                "staff_only",
                "restricted_sensitive",
                "commerce_safe",
                "facility_shareable"
              ]
            }
          }
        }
      ]
    },
    "CareNetworkObjectMetadata": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "visibility",
        "provenance"
      ],
      "properties": {
        "visibility": {
          "$ref": "#/$defs/CareNetworkVisibilitySet"
        },
        "provenance": {
          "$ref": "#/$defs/CareNetworkProvenance"
        }
      }
    },
    "CareNetworkStringField": {
      "allOf": [
        {
          "$ref": "#/$defs/StringField"
        },
        {
          "properties": {
            "value": {
              "$ref": "#/$defs/SensitiveKeywordPattern"
            },
            "visibility": {
              "$ref": "#/$defs/CareNetworkVisibilitySet"
            },
            "provenance": {
              "$ref": "#/$defs/CareNetworkProvenance"
            }
          }
        }
      ]
    },
    "CareNetworkStringArrayField": {
      "allOf": [
        {
          "$ref": "#/$defs/StringArrayField"
        },
        {
          "properties": {
            "value": {
              "items": {
                "$ref": "#/$defs/SensitiveKeywordPattern"
              }
            },
            "visibility": {
              "$ref": "#/$defs/CareNetworkVisibilitySet"
            },
            "provenance": {
              "$ref": "#/$defs/CareNetworkProvenance"
            }
          }
        }
      ]
    },
    "CareNetworkBooleanField": {
      "allOf": [
        {
          "$ref": "#/$defs/BooleanField"
        },
        {
          "properties": {
            "visibility": {
              "$ref": "#/$defs/CareNetworkVisibilitySet"
            },
            "provenance": {
              "$ref": "#/$defs/CareNetworkProvenance"
            }
          }
        }
      ]
    },
    "CareNetworkActorTypeField": {
      "allOf": [
        {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        {
          "properties": {
            "value": {
              "$ref": "#/$defs/CareNetworkActorType"
            }
          }
        }
      ]
    },
    "CareNetworkRelationshipTypeField": {
      "allOf": [
        {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        {
          "properties": {
            "value": {
              "enum": [
                "owner",
                "primary_caregiver",
                "family_contact",
                "friend_contact",
                "pickup_contact",
                "emergency_contact",
                "facility_staff",
                "temporary_caregiver"
              ]
            }
          }
        }
      ]
    },
    "CareNetworkContactChannelTypeField": {
      "allOf": [
        {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        {
          "properties": {
            "value": {
              "enum": [
                "phone",
                "sms",
                "email",
                "in_app"
              ]
            }
          }
        }
      ]
    },
    "CareNetworkActionField": {
      "allOf": [
        {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        {
          "properties": {
            "value": {
              "enum": [
                "pickup_pet",
                "drop_off_pet",
                "receive_care_updates",
                "receive_emergency_contact",
                "approve_minor_service_change",
                "manage_care_network"
              ]
            }
          }
        }
      ]
    },
    "CareNetworkAuthorizationStatusField": {
      "allOf": [
        {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        {
          "properties": {
            "value": {
              "enum": [
                "active",
                "expired",
                "revoked",
                "unknown"
              ]
            }
          }
        }
      ]
    },
    "CareNetworkActorRef": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "actor_id",
        "actor_type",
        "metadata"
      ],
      "properties": {
        "actor_id": {
          "type": "string"
        },
        "actor_type": {
          "$ref": "#/$defs/CareNetworkActorTypeField"
        },
        "display_name": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "role_label": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "organization_id": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/CareNetworkObjectMetadata"
        }
      }
    },
    "CareNetworkPetRelationship": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "actor_id",
        "pet_id",
        "relationship_type",
        "status",
        "metadata"
      ],
      "properties": {
        "actor_id": {
          "type": "string"
        },
        "pet_id": {
          "type": "string"
        },
        "relationship_type": {
          "$ref": "#/$defs/CareNetworkRelationshipTypeField"
        },
        "relationship_label": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "starts_at": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "ends_at": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "status": {
          "$ref": "#/$defs/CareNetworkAuthorizationStatusField"
        },
        "metadata": {
          "$ref": "#/$defs/CareNetworkObjectMetadata"
        }
      }
    },
    "CareNetworkContactChannel": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "actor_id",
        "channel_type",
        "channel_value",
        "allowed_purposes",
        "metadata"
      ],
      "properties": {
        "actor_id": {
          "type": "string"
        },
        "channel_type": {
          "$ref": "#/$defs/CareNetworkContactChannelTypeField"
        },
        "channel_value": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "preferred": {
          "$ref": "#/$defs/CareNetworkBooleanField"
        },
        "allowed_purposes": {
          "allOf": [
            {
              "$ref": "#/$defs/CareNetworkStringArrayField"
            },
            {
              "properties": {
                "value": {
                  "items": {
                    "enum": [
                      "care_network_lookup",
                      "pickup_verification"
                    ]
                  }
                }
              }
            }
          ]
        },
        "valid_from": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "valid_until": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "verification_status": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "metadata": {
          "$ref": "#/$defs/CareNetworkObjectMetadata"
        }
      }
    },
    "CareNetworkActionAuthorization": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "authorization_id",
        "actor_id",
        "pet_id",
        "action",
        "status",
        "metadata"
      ],
      "properties": {
        "authorization_id": {
          "type": "string"
        },
        "actor_id": {
          "type": "string"
        },
        "pet_id": {
          "type": "string"
        },
        "action": {
          "$ref": "#/$defs/CareNetworkActionField"
        },
        "status": {
          "$ref": "#/$defs/CareNetworkAuthorizationStatusField"
        },
        "authorized_by_actor_id": {
          "type": "string"
        },
        "service_id": {
          "type": "string"
        },
        "service_window": {
          "$ref": "#/$defs/ServiceWindow"
        },
        "constraints": {
          "$ref": "#/$defs/CareNetworkStringArrayField"
        },
        "expires_at": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "revoked_at": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "metadata": {
          "$ref": "#/$defs/CareNetworkObjectMetadata"
        }
      }
    },
    "CareNetworkRevocationRecord": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "revocation_id",
        "target_authorization_id",
        "target_actor_id",
        "pet_id",
        "revoked_at",
        "reason_code",
        "metadata"
      ],
      "properties": {
        "revocation_id": {
          "type": "string"
        },
        "target_authorization_id": {
          "type": "string"
        },
        "target_actor_id": {
          "type": "string"
        },
        "pet_id": {
          "type": "string"
        },
        "revoked_at": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "revoked_by_actor_id": {
          "type": "string"
        },
        "reason_code": {
          "allOf": [
            {
              "$ref": "#/$defs/CareNetworkStringField"
            },
            {
              "properties": {
                "value": {
                  "enum": [
                    "owner_revoked",
                    "grant_expired",
                    "service_window_ended",
                    "source_replaced",
                    "not_available"
                  ]
                }
              }
            }
          ]
        },
        "effective_at": {
          "$ref": "#/$defs/CareNetworkStringField"
        },
        "metadata": {
          "$ref": "#/$defs/CareNetworkObjectMetadata"
        }
      }
    },
    "CareNetworkContext": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "pet_id",
        "purpose",
        "subject_actor",
        "metadata"
      ],
      "properties": {
        "pet_id": {
          "type": "string"
        },
        "purpose": {
          "const": "care_network_lookup"
        },
        "subject_actor": {
          "$ref": "#/$defs/CareNetworkActorRef"
        },
        "relationship": {
          "$ref": "#/$defs/CareNetworkPetRelationship"
        },
        "contact_channels": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CareNetworkContactChannel"
          }
        },
        "action_authorizations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CareNetworkActionAuthorization"
          }
        },
        "revocation_records": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CareNetworkRevocationRecord"
          }
        },
        "metadata": {
          "$ref": "#/$defs/CareNetworkObjectMetadata"
        }
      },
      "anyOf": [
        {
          "required": [
            "relationship"
          ]
        },
        {
          "required": [
            "contact_channels"
          ]
        },
        {
          "required": [
            "action_authorizations"
          ]
        },
        {
          "required": [
            "revocation_records"
          ]
        }
      ]
    },
    "CareNetworkLookupRequest": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "requester_actor_id",
        "requester_actor_type",
        "pet_id",
        "purpose",
        "scopes",
        "grant_id",
        "subject_actor_id"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "requester_actor_id": {
          "type": "string"
        },
        "requester_actor_type": {
          "$ref": "#/$defs/ActorType"
        },
        "pet_id": {
          "type": "string"
        },
        "purpose": {
          "const": "care_network_lookup"
        },
        "scopes": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "enum": [
              "pet.care_network.actor_refs.read",
              "pet.care_network.relationships.read",
              "pet.care_network.contact_channels.read",
              "pet.care_network.action_authorizations.read",
              "pet.care_network.revocation_status.read"
            ]
          }
        },
        "grant_id": {
          "type": "string"
        },
        "subject_actor_id": {
          "type": "string"
        },
        "requested_action": {
          "type": "string",
          "enum": [
            "pickup_pet",
            "drop_off_pet",
            "receive_care_updates",
            "receive_emergency_contact",
            "approve_minor_service_change",
            "manage_care_network"
          ]
        },
        "service_id": {
          "type": "string"
        },
        "service_window": {
          "$ref": "#/$defs/ServiceWindow"
        }
      }
    },
    "CareNetworkLookupResponse": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request_id",
        "status",
        "authorization_decision",
        "care_network_context",
        "omissions"
      ],
      "properties": {
        "request_id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "ok",
            "partial",
            "denied"
          ]
        },
        "authorization_decision": {
          "allOf": [
            {
              "$ref": "#/$defs/AuthorizationDecision"
            },
            {
              "properties": {
                "purpose": {
                  "const": "care_network_lookup"
                },
                "applied_scopes": {
                  "items": {
                    "enum": [
                      "pet.care_network.actor_refs.read",
                      "pet.care_network.relationships.read",
                      "pet.care_network.contact_channels.read",
                      "pet.care_network.action_authorizations.read",
                      "pet.care_network.revocation_status.read"
                    ]
                  }
                },
                "denied_scopes": {
                  "items": {
                    "enum": [
                      "pet.care_network.actor_refs.read",
                      "pet.care_network.relationships.read",
                      "pet.care_network.contact_channels.read",
                      "pet.care_network.action_authorizations.read",
                      "pet.care_network.revocation_status.read"
                    ]
                  }
                },
                "reasons": {
                  "items": {
                    "$ref": "#/$defs/SensitiveKeywordPattern"
                  }
                }
              }
            }
          ]
        },
        "care_network_context": {
          "anyOf": [
            {
              "$ref": "#/$defs/CareNetworkContext"
            },
            {
              "type": "null"
            }
          ]
        },
        "omissions": {
          "type": "array",
          "items": {
            "allOf": [
              {
                "$ref": "#/$defs/Omission"
              },
              {
                "properties": {
                  "required_scope": {
                    "enum": [
                      "pet.care_network.actor_refs.read",
                      "pet.care_network.relationships.read",
                      "pet.care_network.contact_channels.read",
                      "pet.care_network.action_authorizations.read",
                      "pet.care_network.revocation_status.read"
                    ]
                  },
                  "detail": {
                    "$ref": "#/$defs/SensitiveKeywordPattern"
                  }
                }
              }
            ]
          }
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "const": "ok"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "allowed"
                  },
                  "denied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "care_network_context": {
                "$ref": "#/$defs/CareNetworkContext"
              },
              "omissions": {
                "maxItems": 0
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "partial"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "partial"
                  }
                }
              },
              "care_network_context": {
                "$ref": "#/$defs/CareNetworkContext"
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "denied"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "authorization_decision": {
                "properties": {
                  "decision": {
                    "const": "denied"
                  },
                  "applied_scopes": {
                    "maxItems": 0
                  }
                }
              },
              "care_network_context": {
                "type": "null"
              },
              "omissions": {
                "minItems": 1
              }
            }
          }
        }
      ]
    },
    "CareNetworkProvenance": {
      "allOf": [
        {
          "$ref": "#/$defs/ContextProvenance"
        },
        {
          "properties": {
            "source_system": {
              "$ref": "#/$defs/SensitiveKeywordPattern"
            },
            "source_record_ref": {
              "$ref": "#/$defs/SensitiveKeywordPattern"
            },
            "derived_from": {
              "items": {
                "$ref": "#/$defs/SensitiveKeywordPattern"
              }
            }
          }
        }
      ]
    }
  }
}
