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
View Context View on GitHub

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

Raw ↑
{
  "@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"
  ]
}