{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/placestack-com/json-schema/placestack-com-saved-list-item-schema.json",
  "title": "SavedListItem",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/placestack-com-openapi.json#/components/schemas/SavedListItem",
  "properties": {
    "object": {
      "type": "string",
      "const": "list_item",
      "title": "Object",
      "description": "The object's type. Always `list_item`.",
      "default": "list_item"
    },
    "id": {
      "type": "string",
      "pattern": "^lsi_[0-7][0-9a-hjkmnp-tv-z]{25}$",
      "title": "Id",
      "description": "Unique identifier for the object."
    },
    "kind": {
      "type": "string",
      "enum": [
        "site",
        "jurisdiction",
        "postal_code",
        "area"
      ],
      "title": "Kind",
      "description": "What the item is. One of `site` (one or more parcels), `jurisdiction` (a town or county), `postal_code` or `area` (a drawn polygon)."
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Name",
      "description": "The item's name. Null when none was given."
    },
    "status": {
      "type": "string",
      "enum": [
        "new",
        "reviewing",
        "pursuing",
        "passed"
      ],
      "title": "Status",
      "description": "Where the item stands. One of `new`, `reviewing`, `pursuing` or `passed`."
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Notes",
      "description": "Notes on the item. Null when there are none."
    },
    "tags": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Tags",
      "description": "Tags on the item, in the order they were added."
    },
    "parcel": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/SiteParcel"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Parcel",
      "description": "A site's parcels, as they were when saved. Null unless `kind` is `site`."
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Address",
      "description": "A site's first parcel's address. Null unless `kind` is `site`."
    },
    "acres": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Acres",
      "description": "A site's total lot size, in acres. Null unless `kind` is `site`."
    },
    "jurisdiction": {
      "anyOf": [
        {
          "$ref": "#/$defs/parcel__JurisdictionRef"
        },
        {
          "type": "null"
        }
      ],
      "description": "The town or county saved, or the one that assesses a site's first parcel."
    },
    "postal_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Postal Code",
      "description": "The ZIP code. Null unless `kind` is `postal_code`."
    },
    "geometry": {
      "anyOf": [
        {
          "$ref": "#/$defs/Geometry"
        },
        {
          "type": "null"
        }
      ],
      "description": "The area. Null unless `kind` is `area`."
    },
    "filter": {
      "anyOf": [
        {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ]
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Filter",
      "description": "`GET /v1/parcel` parameters that narrow a town, ZIP code or area. Null when there are none."
    },
    "centroid": {
      "anyOf": [
        {
          "$ref": "#/$defs/parcel__Point"
        },
        {
          "type": "null"
        }
      ],
      "description": "A site's first parcel's centroid. Null for other kinds."
    },
    "added_by": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Added By",
      "description": "The email address of the member who added the item. Null when that member has left."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At",
      "description": "Time at which the object was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "title": "Updated At",
      "description": "Time at which the object was last updated."
    },
    "href": {
      "type": "string",
      "title": "Href",
      "description": "The object's path in the API."
    }
  },
  "type": "object",
  "required": [
    "object",
    "id",
    "kind",
    "name",
    "status",
    "notes",
    "tags",
    "parcel",
    "address",
    "acres",
    "jurisdiction",
    "postal_code",
    "geometry",
    "filter",
    "centroid",
    "added_by",
    "created_at",
    "updated_at",
    "href"
  ],
  "$defs": {
    "Geometry": {
      "properties": {
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Geometry type. One of `Polygon` or `MultiPolygon`."
        },
        "coordinates": {
          "items": {},
          "type": "array",
          "title": "Coordinates",
          "description": "Coordinates, as `[longitude, latitude]` positions nested by geometry type."
        }
      },
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "title": "Geometry",
      "description": "A GeoJSON geometry in WGS 84, longitude first."
    },
    "SiteParcel": {
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^prc_[0-7][0-9a-hjkmnp-tv-z]{25}$",
          "title": "Id",
          "description": "The parcel's id."
        },
        "number": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Number",
          "description": "The parcel number, as published. Null when it had none."
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address",
          "description": "The parcel's primary site address. Null when it had none."
        },
        "acres": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Acres",
          "description": "Lot size, in acres. Null when not known."
        },
        "href": {
          "type": "string",
          "title": "Href",
          "description": "The parcel's path in the API."
        }
      },
      "type": "object",
      "required": [
        "id",
        "href"
      ],
      "title": "SiteParcel",
      "description": "One parcel of a site, as it was when saved."
    },
    "parcel__JurisdictionRef": {
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^jur_[0-7][0-9a-hjkmnp-tv-z]{25}$",
          "title": "Id",
          "description": "A jurisdiction id."
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "The jurisdiction's common name."
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Kind of jurisdiction, in local terms, such as `county`, `parish`, `city` or `town`."
        },
        "fips": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fips",
          "description": "The Census GEOID. Null outside the US."
        },
        "href": {
          "type": "string",
          "title": "Href",
          "description": "The object's path in the API."
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type",
        "href"
      ],
      "title": "JurisdictionRef",
      "description": "The jurisdiction that assesses the parcel."
    },
    "parcel__Point": {
      "properties": {
        "lat": {
          "type": "number",
          "title": "Lat",
          "description": "Latitude, in WGS 84."
        },
        "lon": {
          "type": "number",
          "title": "Lon",
          "description": "Longitude, in WGS 84."
        }
      },
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "title": "Point",
      "description": "A point in WGS 84."
    }
  }
}