a a vibe-coded abomination experiment of a fragrance review platform built on the atmosphere. drydown.social

created review lexicon

+91
+91
src/lexicons/social.drydown.review.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "social.drydown.review", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "A single wearing review of a fragrance", 8 + "key": "tid", 9 + "record": { 10 + "type": "object", 11 + "required": ["fragrance", "createdAt"], 12 + "properties": { 13 + "fragrance": { 14 + "type": "string", 15 + "format": "at-uri", 16 + "description": "Reference to the social.drydown.fragrance record" 17 + }, 18 + "createdAt": { 19 + "type": "string", 20 + "format": "datetime", 21 + "description": "Timestamp when the review was created" 22 + }, 23 + "openingRating": { 24 + "type": "integer", 25 + "minimum": 1, 26 + "maximum": 5, 27 + "description": "First Impression: How it smells immediately (1-5)" 28 + }, 29 + "openingProjection": { 30 + "type": "integer", 31 + "minimum": 1, 32 + "maximum": 5, 33 + "description": "First Impression: Immediate scent bubble radius (1-5)" 34 + }, 35 + "drydownRating": { 36 + "type": "integer", 37 + "minimum": 1, 38 + "maximum": 5, 39 + "description": "Mid-Wear: How it smells after settling (1-5)" 40 + }, 41 + "midProjection": { 42 + "type": "integer", 43 + "minimum": 1, 44 + "maximum": 5, 45 + "description": "Mid-Wear: Scent bubble radius during mid-wear (1-5)" 46 + }, 47 + "sillage": { 48 + "type": "integer", 49 + "minimum": 1, 50 + "maximum": 5, 51 + "description": "Mid-Wear: Trail left behind (1-5)" 52 + }, 53 + "endRating": { 54 + "type": "integer", 55 + "minimum": 1, 56 + "maximum": 5, 57 + "description": "Final: How it smells at the end (1-5)" 58 + }, 59 + "complexity": { 60 + "type": "integer", 61 + "minimum": 1, 62 + "maximum": 5, 63 + "description": "Final: Depth and evolution (1-5)" 64 + }, 65 + "longevity": { 66 + "type": "integer", 67 + "minimum": 1, 68 + "maximum": 5, 69 + "description": "Final: Total duration (1-5)" 70 + }, 71 + "overallRating": { 72 + "type": "integer", 73 + "minimum": 1, 74 + "maximum": 5, 75 + "description": "Final: Holistic 'Gut Score' (1-5)" 76 + }, 77 + "weightedScore": { 78 + "type": "integer", 79 + "description": "Calculated final score * 1000 (e.g. 4250 = 4.25)" 80 + }, 81 + "text": { 82 + "type": "string", 83 + "maxGraphemes": 255, 84 + "maxLength": 3000, 85 + "description": "Written review (max 255 graphemes)" 86 + } 87 + } 88 + } 89 + } 90 + } 91 + }