{
  "@context": [
    "https://schemas.meta-aiml.org/v3.0.0/context.jsonld"
  ],
  "@id": "https://data.meta-aiml.org/v3.0.0/examples/photo_hosting/lenscloud-gallery",
  "$id": "https://data.meta-aiml.org/v3.0.0/examples/photo_hosting/lenscloud-gallery",
  "@type": "PhotoHosting",
  "schemaVersion": "3.0.0",
  "aimlVersion": "3.0.0",
  "title": "Example Filled Photo Hosting Entity (LensCloud Gallery)",
  "ontologicalMode": "DigitalEntity",
  "interactionArchetype": [
    "DirectService"
  ],
  "domain": "Media",
  "businessModel": [
    "Subscription",
    "Freemium",
    "Transactional"
  ],
  "deliveryFormat": [
    "WebApp",
    "MobileApp",
    "API"
  ],
  "name": {
    "en": "LensCloud Gallery",
    "es": "LensCloud Gallery",
    "fr": "LensCloud Gallery"
  },
  "description": {
    "en": "LensCloud Gallery is a fictional photo hosting platform providing upload pipelines, AI-assisted tagging, secure sharing, and smart collection workflows for creators and teams.",
    "es": "LensCloud Gallery es una plataforma ficticia de photo hosting con pipelines de carga, etiquetado asistido por IA, comparticion segura y colecciones inteligentes.",
    "fr": "LensCloud Gallery est une plateforme fictive d hebergement photo avec pipeline d upload, etiquetage IA, partage securise et collections intelligentes."
  },
  "shortDescription": {
    "en": "Photo hosting service with albums, AI tagging, and secure public/private sharing.",
    "es": "Servicio de photo hosting con albumes, etiquetado IA y comparticion publica/privada segura.",
    "fr": "Service d hebergement photo avec albums, tagging IA et partage public/prive securise."
  },
  "url": "https://lenscloud-gallery.example",
  "foundingDate": "2019-06-11",
  "createdDate": "2026-02-20T21:12:00Z",
  "lastModified": "2026-02-20T21:12:00Z",
  "examples": [
    {
      "scenario": "Portfolio migration for 120k high-resolution images",
      "note": "AI should prioritize mediaPipeline and storage optimization settings, including format conversion and metadata extraction checks."
    },
    {
      "scenario": "External client review cycle with expiring links",
      "note": "AI should use sharing policies to issue secure links and enforce download restrictions with audit visibility."
    }
  ],
  "properties": {
    "supportsRawFormats": true,
    "supportsAlbumHierarchy": true,
    "supportsPublicGalleries": true,
    "supportsAiAutoTagging": true,
    "defaultImageProcessingPipeline": "adaptive",
    "contactPoints": [
      {
        "contactType": "support",
        "telephone": "+1-213-555-0126",
        "email": "support@lenscloud-gallery.example",
        "url": "https://lenscloud-gallery.example/help",
        "areaServed": "global",
        "availableLanguages": [
          "en",
          "es",
          "fr"
        ]
      }
    ],
    "socialProfiles": [
      {
        "platform": "instagram",
        "url": "https://instagram.com/lenscloudgallery",
        "username": "lenscloudgallery"
      },
      {
        "platform": "youtube",
        "url": "https://youtube.com/@lenscloudgallery",
        "username": "lenscloudgallery"
      }
    ],
    "identifiers": [
      {
        "type": "url",
        "value": "https://lenscloud-gallery.example"
      },
      {
        "type": "custom",
        "value": "PH-LCG-001"
      }
    ]
  },
  "capabilities": {
    "interaction": {
      "features": [
        "messaging",
        "commenting",
        "notifications"
      ],
      "interactionMethods": [
        "online_form",
        "chat"
      ],
      "availableActions": [
        "upload_photo",
        "create_album",
        "share_gallery",
        "request_review"
      ],
      "hasMessaging": true,
      "hasComments": true,
      "hasRating": false,
      "hasReviews": false,
      "hasSocialGraph": false,
      "hasFeed": false,
      "hasNotifications": true,
      "hasMatching": false,
      "realTimeCommunication": true,
      "moderationEnabled": true,
      "privacyControls": [
        "private",
        "public"
      ]
    },
    "content": {
      "features": [
        "publishing",
        "mediaHosting",
        "search",
        "categories",
        "tags",
        "archives"
      ],
      "contentTypes": [
        "photo",
        "album",
        "collection",
        "metadata_record"
      ],
      "contentFormats": [
        "jpg",
        "png",
        "webp",
        "raw"
      ],
      "contentAccess": [
        "member",
        "public",
        "restricted"
      ],
      "editorialControl": true,
      "userGeneratedContent": true,
      "mediaHosting": true,
      "searchPossible": true,
      "hasCategorization": true,
      "hasTagging": true,
      "archiveAccess": true,
      "rssFeeds": false
    },
    "financial": {
      "features": [
        "payments",
        "billing",
        "subscriptionManagement",
        "refunds"
      ],
      "paymentMethods": [
        "credit_card",
        "digital_wallet",
        "bank_transfer"
      ],
      "acceptsCreditCards": true,
      "currencies": [
        "USD",
        "EUR"
      ],
      "priceRange": "storage_tiered",
      "commissionModel": "fixed_price",
      "commissionRate": 0,
      "supportsSubscriptions": true,
      "supportsInvoicing": true,
      "refundPolicy": "partial_refund"
    },
    "community": {
      "features": [
        "groups",
        "communities",
        "discovery",
        "moderation"
      ],
      "supportsGroups": true,
      "supportsChannels": false,
      "communitiesCount": 92,
      "hasDiscovery": true,
      "hasModeration": true,
      "moderationModel": "human",
      "hasMembershipManagement": true,
      "membershipTypes": [
        "creator",
        "client"
      ],
      "supportsGroupEvents": false,
      "supportsPolls": false,
      "hasGovernance": false,
      "governanceModel": "centralized",
      "privacyLevels": [
        "public",
        "closed"
      ]
    }
  },
  "modules": {
    "mediaPipeline": {
      "thumbnailGenerationEnabled": true,
      "formatConversionEnabled": true,
      "metadataExtractionEnabled": true
    },
    "sharing": {
      "expiringLinksEnabled": true,
      "passwordProtectedLinksEnabled": true,
      "embedOptionsEnabled": true
    },
    "discovery": {
      "tagSearchEnabled": true,
      "visualSimilaritySearchEnabled": true,
      "smartCollectionsEnabled": true
    }
  },
  "structuralMetadata": {
    "topology": "binary",
    "roles": [
      "user",
      "platform"
    ],
    "valueSource": "platform_provided",
    "transactionFlow": "direct",
    "networkEffects": "none",
    "assetDeliveryModel": "hybrid"
  },
  "targetAudience": [
    "photographers",
    "creative_teams",
    "media_agencies"
  ],
  "siteCapabilities": {
    "supportedDevices": [
      "desktop",
      "mobile",
      "tablet"
    ],
    "languages": [
      "en",
      "es",
      "fr"
    ],
    "accessibilityFeatures": [
      "keyboard_navigation",
      "screen_reader_labels",
      "text_scaling"
    ]
  },
  "validationMetadata": {
    "schemaVersion": "3.0.0",
    "phase": "example_instance",
    "status": "reference",
    "lastValidated": "2026-02-20T21:12:00Z",
    "validator": "META-AIML SDK v3"
  },
  "semanticAnnotations": {
    "classificationRationale": "PhotoHosting is modeled as DigitalEntity plus DirectService because media storage and delivery are first-party platform functions.",
    "disambiguationNotes": "This model is not a social feed-first network. Community features are auxiliary to hosting and asset management.",
    "intendedUse": "Canonical example for photo hosting and digital asset management services."
  },
  "governanceMetadata": {
    "entityVersion": "3.0.0",
    "introducedIn": "META-AIML v3.0.0",
    "stabilityLevel": "reference",
    "sdkValidationRules": [
      "RULE-PHXX-001: @type MUST equal \"PhotoHosting\"",
      "RULE-PHXX-002: ontologicalMode MUST equal \"DigitalEntity\"",
      "RULE-PHXX-003: interactionArchetype MUST contain exactly one value: \"DirectService\"",
      "RULE-PHXX-004: modules.mediaPipeline, modules.sharing, and modules.discovery MUST be present",
      "RULE-PHXX-005: structuralMetadata constants MUST align with DirectService archetype",
      "RULE-PHXX-006: examples MUST include at least two operational scenarios"
    ]
  }
}
