Refactor the unstructured text into a valid JSON dictionary. The key names follow the Darwin Core Archive Standard. If a key lacks content, then insert an empty string. Fill in the following JSON structure as required: {"catalogNumber": "", "order": "", "family": "", "scientificName": "", "scientificNameAuthorship": "", "genus": "", "subgenus": "", "specificEpithet": "", "verbatimTaxonRank": "", "infraspecificEpithet": "", "identifiedBy": "", "recordedBy": "", "recordNumber": "", "verbatimEventDate": "", "habitat": "", "occurrenceRemarks": "", "associatedTaxa": "", "country": "", "stateProvince": "", "county": "", "municipality": "", "locality": "", "decimalLatitude": "", "decimalLongitude": "", "verbatimCoordinates": "", "minimumElevationInMeters": "", "maximumElevationInMeters": ""}
  $;g9 GRAND TRAVRSE     m+  prunus mahaleb  3s~ shrubby beach.    #kB7s ROSACEAE      uP. Rosales MAHALEB nMMfu  1479527 GDIx     |wG^ Single young tree ~ 3 m tall.   MICHIGAN  d$e    44.8115333 OO    8 2 MILES NNE OF DEEPWATER POINT. ON GRAND TRAVERSE BAY BACK %BEACH; 300 FEET NNW OF S END OF WOODRIDGE DR.
{"catalogNumber": "1479527", "order": "Rosales", "family": "Rosaceae", "scientificName": "Prunus mahaleb", "scientificNameAuthorship": "", "genus": "", "subgenus": "", "specificEpithet": "mahaleb", "verbatimTaxonRank": "", "infraspecificEpithet": "", "identifiedBy": "", "recordedBy": "", "recordNumber": "", "verbatimEventDate": "", "habitat": "Shrubby beach.", "occurrenceRemarks": "Single young tree ~ 3 m tall.", "associatedTaxa": "", "country": "", "stateProvince": "Michigan", "county": "Grand Traverse", "municipality": "", "locality": "2 miles NNE of Deepwater Point. On Grand Traverse Bay back beach; 300 feet NNW of S end of Woodridge Dr.", "decimalLatitude": "44.8115333", "decimalLongitude": "", "verbatimCoordinates": "", "minimumElevationInMeters": "", "maximumElevationInMeters": ""}