OpenTravel 2020A Facility Resource

Swagger 2.0 resource contract generated from the OpenTravel 2.0 Object Model, 2020A Object Suite. Defines POST /Facilities and GET /Facilities/{Identifier} with 232 model definitions covering hospitality and golf facility description. Published as a specification artifact with host example.com and basePath /resource/v1_0; OpenTravel operates no runtime endpoint for it.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/opentravel-2020a-facility-resource"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

opentravel-2020a-facility-resource-defs-openapi.json Raw ↑
{
  "swagger": "2.0",
  "x-otm-resource": {
    "namespace": "http://www.opentravel.org/OTM/resources/GlobalResources/v1",
    "localName": "FacilityResource"
  },
  "info": {
    "title": "FacilityResource",
    "x-otm-library": {
      "ResourceName": "FacilityResource",
      "LibraryName": "FacilityResource",
      "LibraryVersion": "1.0.0",
      "LibraryStatus": "DRAFT",
      "SourceFile": "/FacilityResource_1_0_0.otm",
      "CompilerVersion": "4.0-SNAPSHOT",
      "CompileDate": "2020-05-15T11:16:19.832-0500"
    },
    "description": "RESTful service to access all types of facilities.",
    "version": "1.0.0"
  },
  "host": "example.com",
  "basePath": "/resource/v1_0",
  "schemes": [
    "http"
  ],
  "paths": {
    "/Facilities": {
      "post": {
        "summary": "FacilityResource - Post",
        "description": "Add a facility to the facilities collection.",
        "operationId": "Post",
        "consumes": [
          "application/json",
          "application/xml"
        ],
        "produces": [
          "application/xml",
          "application/json"
        ],
        "parameters": [
          {
            "name": "FacilityID",
            "in": "body",
            "description": "Describes a facility (e.g. Hotel Facility,Conference Facility, Golf Facility).  A facility must have a single address and a single geolocation.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FacilityID"
            },
            "x-xml-schema": {
              "$ref": "Organization_4_1_0_Trim.xsd#/Facility"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "401": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "402": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "403": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "404": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "500": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/FacilityList"
            },
            "x-xml-schema": {
              "$ref": "FacilityResource_1_0_0_Trim.xsd#/FacilityList"
            }
          }
        }
      }
    },
    "/Facilities/{Identifier}": {
      "get": {
        "summary": "FacilityResource - Get",
        "operationId": "Get",
        "produces": [
          "application/xml",
          "application/json"
        ],
        "parameters": [
          {
            "name": "Identifier",
            "in": "path",
            "description": "A unique identifier defined by an external authority for this object.",
            "required": true,
            "type": "string",
            "maxLength": 128
          }
        ],
        "responses": {
          "400": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "401": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "402": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "403": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "404": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "500": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BaseResponse"
            },
            "x-xml-schema": {
              "$ref": "Common_5_0_0_Trim.xsd#/BaseResponse"
            }
          },
          "200": {
            "description": "Describes a facility (e.g. Hotel Facility,Conference Facility, Golf Facility).  A facility must have a single address and a single geolocation.",
            "schema": {
              "$ref": "#/definitions/FacilityID"
            },
            "x-xml-schema": {
              "$ref": "Organization_4_1_0_Trim.xsd#/Facility"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "CourseID": {
      "x-otm-entity": {
        "EntityType": "BusinessObject",
        "EntityName": "Course"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "objID": {
          "description": "A unique identifier within this document for this object.",
          "type": "string"
        },
        "Identifier": {
          "description": "Assigned Type: ota2-0500:Identifier",
          "$ref": "#/definitions/Identifier"
        },
        "CourseRef": {
          "description": "Refers to the obj ID on an object defined elsewhere in the current document.",
          "type": "string"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "Course": {
      "x-otm-entity": {
        "EntityType": "BusinessObject",
        "EntityName": "Course"
      },
      "allOf": [
        {
          "$ref": "#/definitions/CourseID"
        },
        {
          "properties": {
            "numberOfHoles": {
              "description": "Assigned Type: ota2-0500:NonNegativeInteger",
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "exclusiveMinimum": false
            },
            "par": {
              "description": "Assigned Type: ota2-0500:NonNegativeInteger",
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "exclusiveMinimum": false
            },
            "totalYardage": {
              "description": "Assigned Type: ota2-0500:NonNegativeInteger",
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "exclusiveMinimum": false
            },
            "yearBuilt": {
              "description": "The year the course was built.",
              "type": "string",
              "format": "date"
            },
            "name": {
              "description": "Assigned Type: ota2-0500:StringShort",
              "type": "string",
              "maxLength": 128
            },
            "CourseClosure": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CourseClosure"
              },
              "maxItems": 50
            },
            "CourseConditions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CourseConditions"
              },
              "maxItems": 20
            },
            "CourseRestrictions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CourseRestrictions"
              },
              "maxItems": 20
            },
            "ScoreCard": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ScoreCard"
              },
              "maxItems": 50
            },
            "OperationSchedule": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/OperationSchedule"
              },
              "maxItems": 30
            },
            "FeeStructure": {
              "description": "Assigned Type: ota2-0500:RateRange",
              "$ref": "#/definitions/RateRange"
            },
            "CourseArchitect": {
              "description": "Assigned Type: orggf-0300:CourseArchitect",
              "$ref": "#/definitions/CourseArchitect"
            },
            "golfCarRequiredInd": {
              "description": "When true, a golf car is required on this golf course.",
              "type": "boolean"
            },
            "ExtensionPoint": {
              "$ref": "#/definitions/ExtensionPoint"
            }
          }
        }
      ]
    },
    "CourseDetail": {
      "x-otm-entity": {
        "EntityType": "BusinessObject",
        "EntityName": "Course"
      },
      "allOf": [
        {
          "$ref": "#/definitions/Course"
        },
        {
          "properties": {
            "NineHoleName": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 128
              },
              "maxItems": 10
            },
            "ExtensionPoint_Detail": {
              "$ref": "#/definitions/ExtensionPoint_Detail"
            }
          }
        }
      ]
    },
    "CourseClosure": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "CourseClosure"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "TimeSpan": {
          "description": "Assigned Type: ota2-0500:TimeSpan",
          "$ref": "#/definitions/TimeSpan"
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "CourseClosureDetail": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "CourseClosure"
      },
      "allOf": [
        {
          "$ref": "#/definitions/CourseClosure"
        },
        {
          "properties": {
            "StartWindow": {
              "description": "Assigned Type: ota2-0500:TimeSpan",
              "$ref": "#/definitions/TimeSpan"
            },
            "EndWindow": {
              "description": "Assigned Type: ota2-0500:TimeSpan",
              "$ref": "#/definitions/TimeSpan"
            },
            "Duration": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "maxItems": 100
            },
            "DurationUnit": {
              "description": "Assigned Type: ota2-0400:DurationUnit_Enum",
              "$ref": "#/definitions/DurationUnit_Enum"
            },
            "Description": {
              "description": "Assigned Type: ota2-0500:Description",
              "$ref": "#/definitions/Description"
            },
            "ExtensionPoint_Detail": {
              "$ref": "#/definitions/ExtensionPoint_Detail"
            }
          }
        }
      ]
    },
    "CourseConditions": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "CourseConditions"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "source": {
          "description": "Assigned Type: ota2-0500:StringShort",
          "type": "string",
          "maxLength": 128
        },
        "anyURI": {
          "description": "The URL that provided the course conditions.",
          "type": "string"
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "CourseRestrictions": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "CourseRestrictions"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "type": {
          "description": "The type of facility and\\/or tee time restriction.",
          "x-otm-annotations": {
            "documentation": {
              "implementers": [
                "Assigned XSD Type: {http:\\/\\/www.w3.org\\/2001\\/XMLSchema}string"
              ]
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description of the facility and\\/or tee time restriction.",
          "x-otm-annotations": {
            "documentation": {
              "implementers": [
                "Assigned XSD Type: {http:\\/\\/www.w3.org\\/2001\\/XMLSchema}string"
              ]
            }
          },
          "type": "string"
        },
        "TimeSpan": {
          "description": "Assigned Type: ota2-0500:TimeSpan",
          "$ref": "#/definitions/TimeSpan"
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "CourseRestrictionsDetail": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "CourseRestrictions"
      },
      "allOf": [
        {
          "$ref": "#/definitions/CourseRestrictions"
        },
        {
          "properties": {
            "StartWindow": {
              "description": "Assigned Type: ota2-0500:TimeSpan",
              "$ref": "#/definitions/TimeSpan"
            },
            "EndWindow": {
              "description": "Assigned Type: ota2-0500:TimeSpan",
              "$ref": "#/definitions/TimeSpan"
            },
            "Duration": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "maxItems": 100
            },
            "DurationUnit": {
              "description": "Assigned Type: ota2-0400:DurationUnit_Enum",
              "$ref": "#/definitions/DurationUnit_Enum"
            },
            "ExtensionPoint_Detail": {
              "$ref": "#/definitions/ExtensionPoint_Detail"
            }
          }
        }
      ]
    },
    "DrivingRange": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "DrivingRange"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "turfType": {
          "description": "Assigned Type: ota2-0500:StringTiny",
          "x-otm-annotations": {
            "examples": [
              {
                "context": "orggf",
                "value": "Grass"
              }
            ]
          },
          "type": "string",
          "maxLength": 32
        },
        "distance": {
          "description": "Assigned Type: ota2-0500:StringTiny",
          "x-otm-annotations": {
            "examples": [
              {
                "context": "orggf",
                "value": "500 ft"
              }
            ]
          },
          "type": "string",
          "maxLength": 32
        },
        "numberOfStations": {
          "description": "The number of stations at the driving range.",
          "x-otm-annotations": {
            "examples": [
              {
                "context": "orggf",
                "value": "10"
              }
            ]
          },
          "type": "integer",
          "format": "int32"
        },
        "drivingRangeType": {
          "description": "Describes the type of driving range (e.g. Covered, Indoor, Outdoor).",
          "x-otm-annotations": {
            "examples": [
              {
                "context": "orggf",
                "value": "Outdoor"
              }
            ]
          },
          "$ref": "#/definitions/DrivingRangeType_Enum"
        },
        "nightLightingInd": {
          "description": "When true, night lighting is provided.",
          "type": "boolean"
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "GolfFacilityFeatures": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "GolfFacilityFeatures"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "description": {
          "description": "Assigned Type: ota2-0500:String",
          "type": "string",
          "maxLength": 512
        },
        "FacilityHighlights": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FacilityHighlights_Enum"
          },
          "maxItems": 10
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "PracticeFacilities": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "PracticeFacilities"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "OperationSchedule": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OperationSchedule"
          },
          "maxItems": 30
        },
        "DrivingRange": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DrivingRange"
          },
          "maxItems": 10
        },
        "FeeStructure": {
          "description": "Assigned Type: ota2-0500:RateRange",
          "$ref": "#/definitions/RateRange"
        },
        "PracticeFacilityFeatures": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PracticeFacilityFeatures_Enum"
          },
          "maxItems": 20
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "ProShopID": {
      "x-otm-entity": {
        "EntityType": "BusinessObject",
        "EntityName": "ProShop"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "objID": {
          "description": "A unique identifier within this document for this object.",
          "type": "string"
        },
        "Identifier": {
          "description": "Assigned Type: ota2-0500:Identifier",
          "$ref": "#/definitions/Identifier"
        },
        "ProShopRef": {
          "description": "Refers to the obj ID on an object defined elsewhere in the current document.",
          "type": "string"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "ProShop": {
      "x-otm-entity": {
        "EntityType": "BusinessObject",
        "EntityName": "ProShop"
      },
      "allOf": [
        {
          "$ref": "#/definitions/ProShopID"
        },
        {
          "properties": {
            "RentalEquipment": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RentalEquipment"
              },
              "maxItems": 30
            },
            "Services": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GolfServices_Enum"
              },
              "maxItems": 30
            },
            "ExtensionPoint": {
              "$ref": "#/definitions/ExtensionPoint"
            }
          }
        }
      ]
    },
    "ClubHouse": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "ClubHouse"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "ClubHouseFeatures": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ClubHouseFeatures_Enum"
          },
          "maxItems": 20
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "CourseType_Enum": {
      "x-otm-entity": {
        "EntityType": "EnumerationClosed",
        "EntityName": "CourseType_Enum"
      },
      "description": "The course type at the facility.",
      "type": "string",
      "enum": [
        "DailyFee",
        "Municipal/Government/Military",
        "Private",
        "Private Limited Access",
        "Resort"
      ]
    },
    "DrivingRangeType_Enum": {
      "x-otm-entity": {
        "EntityType": "EnumerationClosed",
        "EntityName": "DrivingRangeType_Enum"
      },
      "description": "Describes the type of driving range.",
      "type": "string",
      "enum": [
        "Covered",
        "Indoor",
        "Outdoor"
      ]
    },
    "GolfFacility": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "GolfFacility"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "courseType": {
          "description": "The course type at the facility.",
          "$ref": "#/definitions/CourseType_Enum"
        },
        "dressPolicy": {
          "description": "Assigned Type: ota2-0500:StringShort",
          "type": "string",
          "maxLength": 128
        },
        "GolfFacilityFeatures": {
          "description": "Assigned Type: orggf-0300:GolfFacilityFeatures",
          "$ref": "#/definitions/GolfFacilityFeatures"
        },
        "ClubHouse": {
          "description": "Assigned Type: orggf-0300:ClubHouse",
          "$ref": "#/definitions/ClubHouse"
        },
        "Course": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CourseID"
          },
          "maxItems": 10
        },
        "ProShop": {
          "description": "Assigned Type: orggf-0300:ProShop",
          "$ref": "#/definitions/ProShopID"
        },
        "PracticeFacilities": {
          "description": "Assigned Type: orggf-0300:PracticeFacilities",
          "$ref": "#/definitions/PracticeFacilities"
        },
        "Amenity": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Amenity"
          },
          "maxItems": 99
        },
        "Ancillary": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Ancillary"
          },
          "maxItems": 99
        },
        "featuredInd": {
          "description": "If true, this facility has been marked as a featured course by the supplier.",
          "type": "boolean"
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type",
        "GolfFacilityFeatures"
      ],
      "discriminator": "@type"
    },
    "GolfFacilityDetail": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "GolfFacility"
      },
      "allOf": [
        {
          "$ref": "#/definitions/GolfFacility"
        },
        {
          "properties": {
            "MeetingCenter": {
              "description": "Assigned Type: org-0400:MeetingCenter",
              "$ref": "#/definitions/MeetingCenter"
            },
            "RateRange": {
              "description": "Assigned Type: ota2-0500:RateRange",
              "$ref": "#/definitions/RateRange"
            },
            "ExtensionPoint_Detail": {
              "$ref": "#/definitions/ExtensionPoint_Detail"
            }
          }
        }
      ]
    },
    "RentalEquipment": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "RentalEquipment"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "Type": {
          "description": "Assigned Type: orggf-0300:GolfRentalEquipment_Enum",
          "$ref": "#/definitions/GolfRentalEquipment_Enum"
        },
        "PersonCategory": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PersonCategory_Enum"
          },
          "maxItems": 10
        },
        "accessibleInd": {
          "description": "When true, this equipment offered is accessible.",
          "type": "boolean"
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "GolfRentalEquipment_Enum": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "GolfRentalEquipment_Enum"
      },
      "description": "Rental equipment.",
      "properties": {
        "value": {
          "$ref": "#/definitions/GolfRentalEquipment_Enum_Base"
        },
        "extension": {
          "type": "string",
          "maxLength": 128,
          "minLength": 1
        }
      }
    },
    "GolfRentalEquipment_Enum_Base": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "GolfRentalEquipment_Enum"
      },
      "description": "Rental equipment.",
      "type": "string",
      "enum": [
        "RightHandedClubs",
        "LeftHandedClubs",
        "GolfCars",
        "StandupTransportation",
        "Shoes",
        "Other_"
      ]
    },
    "PersonCategory_Enum": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "PersonCategory_Enum"
      },
      "properties": {
        "value": {
          "$ref": "#/definitions/PersonCategory_Enum_Base"
        },
        "extension": {
          "type": "string",
          "maxLength": 128,
          "minLength": 1
        }
      }
    },
    "PersonCategory_Enum_Base": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "PersonCategory_Enum"
      },
      "type": "string",
      "enum": [
        "Juniors",
        "Womens",
        "Mens",
        "Other_"
      ]
    },
    "FacilityHighlights_Enum": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "FacilityHighlights_Enum"
      },
      "description": "Items offered at a facility.",
      "properties": {
        "value": {
          "$ref": "#/definitions/FacilityHighlights_Enum_Base"
        },
        "extension": {
          "type": "string",
          "maxLength": 128,
          "minLength": 1
        }
      }
    },
    "FacilityHighlights_Enum_Base": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "FacilityHighlights_Enum"
      },
      "description": "Items offered at a facility.",
      "type": "string",
      "enum": [
        "Accessible",
        "ClubRental",
        "DayLockers",
        "Dining",
        "DrivingRange",
        "GolfLessons",
        "GolfSchool",
        "MetalSpilesAllowed",
        "PracticeFacilities",
        "Other_"
      ]
    },
    "GolfServices_Enum": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "GolfServices_Enum"
      },
      "description": "Services offered at a golf facility.",
      "properties": {
        "value": {
          "$ref": "#/definitions/GolfServices_Enum_Base"
        },
        "extension": {
          "type": "string",
          "maxLength": 128,
          "minLength": 1
        }
      }
    },
    "GolfServices_Enum_Base": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "GolfServices_Enum"
      },
      "description": "Services offered at a golf facility.",
      "type": "string",
      "enum": [
        "ClubRegripping",
        "ClubFitting",
        "Lessons",
        "RetailStore",
        "CaddyForHire",
        "Other_"
      ]
    },
    "TeePosition": {
      "x-otm-entity": {
        "EntityType": "ValueWithAttributes",
        "EntityName": "TeePosition"
      },
      "description": "The tee position for the hole.",
      "properties": {
        "teePositionName": {
          "description": "Assigned Type: ota2-0500:StringTiny",
          "x-otm-annotations": {
            "examples": [
              {
                "context": "orggf",
                "value": "Champion"
              }
            ]
          },
          "type": "string",
          "maxLength": 32
        },
        "yardage": {
          "description": "The yardage for this hole from this tee position.",
          "x-otm-annotations": {
            "examples": [
              {
                "context": "orggf",
                "value": "120"
              }
            ]
          },
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ScoreCard": {
      "x-otm-entity": {
        "EntityType": "CoreObject",
        "EntityName": "ScoreCard"
      },
      "properties": {
        "@type": {
          "type": "string"
        },
        "courseSlope": {
          "description": "The slope rating of the golf course.",
          "x-otm-annotations": {
            "documentation": {
              "implementers": [
                "Assigned XSD Type: {http:\\/\\/www.w3.org\\/2001\\/XMLSchema}string"
              ]
            },
            "examples": [
              {
                "context": "orggf",
                "value": "60"
              }
            ]
          },
          "type": "string"
        },
        "number": {
          "description": "The hole number.",
          "x-otm-annotations": {
            "documentation": {
              "implementers": [
                "Assigned XSD Type: {http:\\/\\/www.w3.org\\/2001\\/XMLSchema}positiveInteger"
              ]
            },
            "examples": [
              {
                "context": "orggf",
                "value": "2"
              }
            ]
          },
          "type": "integer",
          "format": "int32"
        },
        "par": {
          "description": "The par for the hole.",
          "x-otm-annotations": {
            "documentation": {
              "implementers": [
                "Assigned XSD Type: {http:\\/\\/www.w3.org\\/2001\\/XMLSchema}positiveInteger"
              ]
            },
            "examples": [
              {
                "context": "orggf",
                "value": "3"
              }
            ]
          },
          "type": "integer",
          "format": "int32"
        },
        "TeePosition": {
          "description": "Assigned Type: orggf-0300:TeePosition",
          "$ref": "#/definitions/TeePosition"
        },
        "ExtensionPoint": {
          "$ref": "#/definitions/ExtensionPoint"
        }
      },
      "required": [
        "@type"
      ],
      "discriminator": "@type"
    },
    "CourseArchitect": {
      "x-otm-entity": {
        "EntityType": "ValueWithAttributes",
        "EntityName": "CourseArchitect"
      },
      "description": "Information regarding the architect of the course.",
      "properties": {
        "name": {
          "description": "Assigned Type: ota2-0500:StringTiny",
          "type": "string",
          "maxLength": 32
        },
        "year": {
          "description": "Assigned Type: ota2-0500:StringTiny",
          "type": "string",
          "maxLength": 32
        },
        "description": {
          "description": "Assigned Type: ota2-0500:StringLong",
          "type": "string",
          "maxLength": 4096
        },
        "originalInd": {
          "description": "When true, this is the orginal course architect, when false this is the course architect for a renovation.",
          "type": "boolean"
        }
      }
    },
    "ClubHouseFeatures_Enum": {
      "x-otm-entity": {
        "EntityType": "EnumerationOpen",
        "EntityName": "ClubHouseFeatures_Enum"
      },
      "description": "Features related to the club house.",
      "properties": {
        "value": {
 

# --- truncated at 32 KB (309 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/opentravel-alliance/refs/heads/main/openapi/opentravel-2020a-facility-resource-defs-openapi.json