Studio Ghibli · API Governance Rules
Studio Ghibli API Rules
Spectral linting rules defining API design standards and conventions for Studio Ghibli.
23 Rules
error 5
warn 14
info 4
Rule Categories
info
operation
parameter
path
response
schema
servers
Rules
warn
info-title-studio-ghibli-prefix
API title MUST begin with "Studio Ghibli".
$.info.title
warn
info-description-required
API description MUST be present and non-trivial.
$.info
error
info-version-required
API version MUST be declared in info.version.
$.info
warn
info-license-required
Studio Ghibli API is MIT-licensed — info.license MUST be present.
$.info
error
servers-present
At least one server URL MUST be declared.
$
info
servers-canonical-host
The first server URL SHOULD point to the current canonical Vercel deployment.
$.servers[0].url
warn
path-lowercase-kebab
Path segments MUST be lowercase. The Studio Ghibli API uses single-word plural collection nouns.
$.paths[*]~
warn
path-plural-collections
Collection paths MUST use plural nouns (films, people, locations, species, vehicles).
$.paths[*]~
error
operation-operationid-required
Every operation MUST declare an operationId.
$.paths[*][get,post,put,patch,delete]
warn
operation-operationid-camelcase
operationId MUST be camelCase (e.g. listFilms, getFilm).
$.paths[*][get,post,put,patch,delete].operationId
warn
operation-summary-required
Every operation MUST have a Title Case summary.
$.paths[*][get,post,put,patch,delete]
info
operation-summary-title-case
Operation summaries SHOULD use Title Case.
$.paths[*][get,post,put,patch,delete].summary
warn
operation-description-required
Every operation MUST have a description.
$.paths[*][get,post,put,patch,delete]
warn
operation-tags-required
Every operation MUST be tagged with one of the five Studio Ghibli resource groups.
$.paths[*][get,post,put,patch,delete]
warn
operation-tags-allowed
Operation tags MUST be one of Films, People, Locations, Species, Vehicles.
$.paths[*][get,post,put,patch,delete].tags[*]
warn
parameter-description-required
Every parameter MUST have a description.
$..parameters[*]
error
parameter-schema-required
Every parameter MUST have a schema with a type.
$..parameters[*]
info
parameter-snake-case
Parameter names SHOULD be snake_case to match the response field casing.
$..parameters[?(@.in=='query')].name
error
response-200-required
Every GET operation MUST declare a 200 success response.
$.paths[*].get.responses
warn
response-404-on-by-id
Single-resource (by-id) operations MUST declare a 404 response.
$.paths[?(@property.match(/.*\{id\}$/))].get.responses
warn
response-content-application-json
Success responses MUST use application/json.
$.paths[*].get.responses.200.content
warn
schema-required-id
All five resource schemas MUST require an id field.
$.components.schemas[Film,Person,Location,Species,Vehicle]
info
schema-property-snake-case
Schema property names SHOULD be snake_case (matches API responses).
$.components.schemas[*].properties[*]~