Hackshop · JSON-LD Context
Hackshop Dev Context
JSON-LD context defining the semantic vocabulary for Hackshop Dev from Hackshop.
7 Classes
44 Properties
4 Namespaces
Namespaces
schema:
https://schema.org/
xsd:
http://www.w3.org/2001/XMLSchema#
dcterms:
http://purl.org/dc/terms/
hackshop:
https://hackshop.dev/schema#
Classes
IntakeAnswers
PlanRequest
IntakeQuestion
Pick
Difficulty
PlanResponse
Error
Properties
| Property | Type | Container |
|---|---|---|
| size | string | |
| interaction | string | |
| sensing | string | |
| budget | string | |
| idea | string | |
| answers | reference | |
| platform | string | |
| budget_usd | decimal | |
| owned_device_ids | list | |
| needs | list | |
| limit | integer | |
| id | string | |
| question | string | |
| why | string | |
| options | list | |
| device_id | string | |
| name | string | |
| platform_id | string | |
| support | string | |
| tier_label | string | |
| gaps | list | |
| needs_met | list | |
| est_total_usd | decimal | |
| within_budget | boolean | |
| price_label | string | |
| difficulty | ||
| build_page_url | reference | |
| agent_brief_url | reference | |
| warnings | list | |
| caveats | list | |
| level | string | |
| label | string | |
| short | string | |
| inferred_needs | list | |
| inferred_size | string | |
| fit | string | |
| notes | list | |
| difficulty_note | string | |
| intake | ||
| questions | list | |
| picks | list | |
| terms | list | |
| next_steps | list | |
| error | string |
JSON-LD Document
{
"@context": {
"@vocab": "https://hackshop.dev/schema#",
"schema": "https://schema.org/",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"dcterms": "http://purl.org/dc/terms/",
"hackshop": "https://hackshop.dev/schema#",
"IntakeAnswers": "hackshop:IntakeAnswers",
"size": {
"@id": "hackshop:size",
"@type": "xsd:string"
},
"interaction": {
"@id": "hackshop:interaction",
"@type": "xsd:string"
},
"sensing": {
"@id": "hackshop:sensing",
"@type": "xsd:string"
},
"budget": {
"@id": "hackshop:budget",
"@type": "xsd:string"
},
"PlanRequest": "hackshop:PlanRequest",
"idea": {
"@id": "hackshop:idea",
"@type": "xsd:string"
},
"answers": {
"@id": "hackshop:answers",
"@type": "@id"
},
"platform": {
"@id": "hackshop:platform",
"@type": "xsd:string"
},
"budget_usd": {
"@id": "hackshop:budget_usd",
"@type": "xsd:decimal"
},
"owned_device_ids": {
"@id": "hackshop:owned_device_ids",
"@container": "@list"
},
"needs": {
"@id": "hackshop:needs",
"@container": "@list"
},
"limit": {
"@id": "hackshop:limit",
"@type": "xsd:integer"
},
"IntakeQuestion": "hackshop:IntakeQuestion",
"id": {
"@id": "hackshop:id",
"@type": "xsd:string"
},
"question": {
"@id": "hackshop:question",
"@type": "xsd:string"
},
"why": {
"@id": "hackshop:why",
"@type": "xsd:string"
},
"options": {
"@id": "hackshop:options",
"@container": "@list"
},
"Pick": "hackshop:Pick",
"device_id": {
"@id": "hackshop:device_id",
"@type": "xsd:string"
},
"name": {
"@id": "hackshop:name",
"@type": "xsd:string"
},
"platform_id": {
"@id": "hackshop:platform_id",
"@type": "xsd:string"
},
"support": {
"@id": "hackshop:support",
"@type": "xsd:string"
},
"tier_label": {
"@id": "hackshop:tier_label",
"@type": "xsd:string"
},
"gaps": {
"@id": "hackshop:gaps",
"@container": "@list"
},
"needs_met": {
"@id": "hackshop:needs_met",
"@container": "@list"
},
"est_total_usd": {
"@id": "hackshop:est_total_usd",
"@type": "xsd:decimal"
},
"within_budget": {
"@id": "hackshop:within_budget",
"@type": "xsd:boolean"
},
"price_label": {
"@id": "hackshop:price_label",
"@type": "xsd:string"
},
"difficulty": {
"@id": "hackshop:difficulty"
},
"build_page_url": {
"@id": "hackshop:build_page_url",
"@type": "@id"
},
"agent_brief_url": {
"@id": "hackshop:agent_brief_url",
"@type": "@id"
},
"warnings": {
"@id": "hackshop:warnings",
"@container": "@list"
},
"caveats": {
"@id": "hackshop:caveats",
"@container": "@list"
},
"Difficulty": "hackshop:Difficulty",
"level": {
"@id": "hackshop:level",
"@type": "xsd:string"
},
"label": {
"@id": "hackshop:label",
"@type": "xsd:string"
},
"short": {
"@id": "hackshop:short",
"@type": "xsd:string"
},
"PlanResponse": "hackshop:PlanResponse",
"inferred_needs": {
"@id": "hackshop:inferred_needs",
"@container": "@list"
},
"inferred_size": {
"@id": "hackshop:inferred_size",
"@type": "xsd:string"
},
"fit": {
"@id": "hackshop:fit",
"@type": "xsd:string"
},
"notes": {
"@id": "hackshop:notes",
"@container": "@list"
},
"difficulty_note": {
"@id": "hackshop:difficulty_note",
"@type": "xsd:string"
},
"intake": {
"@id": "hackshop:intake"
},
"questions": {
"@id": "hackshop:questions",
"@container": "@list"
},
"picks": {
"@id": "hackshop:picks",
"@container": "@list"
},
"terms": {
"@id": "hackshop:terms",
"@container": "@list"
},
"next_steps": {
"@id": "hackshop:next_steps",
"@container": "@list"
},
"Error": "hackshop:Error",
"error": {
"@id": "hackshop:error",
"@type": "xsd:string"
}
},
"@type": "schema:Dataset",
"schema:name": "Hackshop API JSON-LD context",
"schema:description": "A JSON-LD @context for the objects Hackshop's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-11) from openapi/hackshop-dev-openapi.json.",
"dcterms:created": "2026-11-11",
"dcterms:source": [
"openapi/hackshop-dev-openapi.json"
]
}