/// <returns>An <see cref="OSDMap"/> containing the objects data</returns>
public OSDMap Serialize()
{
OSDMap map = new OSDMap(3);
OSDArray dataArray = new OSDArray(1);
OSDMap parcelDataMap = new OSDMap(47);
parcelDataMap.put("LocalID", OSD.FromInteger(LocalID));
parcelDataMap.put("AABBMax", OSD.FromVector3(AABBMax));
parcelDataMap.put("AABBMin", OSD.FromVector3(AABBMin));
parcelDataMap.put("Area", OSD.FromInteger(Area));
parcelDataMap.put("AuctionID", OSD.FromInteger((int)AuctionID));
parcelDataMap.put("AuthBuyerID", OSD.FromUUID(AuthBuyerID));
parcelDataMap.put("Bitmap", OSD.FromBinary(Bitmap));
parcelDataMap.put("Category", OSD.FromInteger((int)Category.getIndex()));
parcelDataMap.put("ClaimDate", OSD.FromDate(ClaimDate));
parcelDataMap.put("ClaimPrice", OSD.FromInteger(ClaimPrice));
parcelDataMap.put("Desc", OSD.FromString(Desc));
parcelDataMap.put("ParcelFlags", OSD.FromUInteger(ParcelFlags.getIndex(parcelFlags)));
parcelDataMap.put("GroupID", OSD.FromUUID(GroupID));
parcelDataMap.put("GroupPrims", OSD.FromInteger(GroupPrims));
parcelDataMap.put("IsGroupOwned", OSD.FromBoolean(IsGroupOwned));
parcelDataMap.put("LandingType", OSD.FromInteger((int)landingType.getIndex()));
parcelDataMap.put("MaxPrims", OSD.FromInteger(MaxPrims));
parcelDataMap.put("MediaID", OSD.FromUUID(MediaID));
parcelDataMap.put("MediaURL", OSD.FromString(MediaURL));
parcelDataMap.put("MediaAutoScale", OSD.FromBoolean(MediaAutoScale));
parcelDataMap.put("MusicURL", OSD.FromString(MusicURL));
parcelDataMap.put("Name", OSD.FromString(Name));
parcelDataMap.put("OtherCleanTime", OSD.FromInteger(OtherCleanTime));
parcelDataMap.put("OtherCount", OSD.FromInteger(OtherCount));
parcelDataMap.put("OtherPrims", OSD.FromInteger(OtherPrims));
parcelDataMap.put("OwnerID", OSD.FromUUID(OwnerID));
parcelDataMap.put("OwnerPrims", OSD.FromInteger(OwnerPrims));
parcelDataMap.put("ParcelPrimBonus", OSD.FromReal((float)ParcelPrimBonus));
parcelDataMap.put("PassHours", OSD.FromReal((float)PassHours));
parcelDataMap.put("PassPrice", OSD.FromInteger(PassPrice));
parcelDataMap.put("PublicCount", OSD.FromInteger(PublicCount));
parcelDataMap.put("Privacy", OSD.FromBoolean(Privacy));
parcelDataMap.put("RegionDenyAnonymous", OSD.FromBoolean(RegionDenyAnonymous));
parcelDataMap.put("RegionDenyIdentified", OSD.FromBoolean(RegionDenyIdentified));
parcelDataMap.put("RegionDenyTransacted", OSD.FromBoolean(RegionDenyTransacted));
parcelDataMap.put("RegionPushOverride", OSD.FromBoolean(RegionPushOverride));
parcelDataMap.put("RentPrice", OSD.FromInteger(RentPrice));
parcelDataMap.put("RequestResult", OSD.FromInteger((int)RequestResult.getIndex()));
parcelDataMap.put("SalePrice", OSD.FromInteger(SalePrice));
parcelDataMap.put("SelectedPrims", OSD.FromInteger(SelectedPrims));
parcelDataMap.put("SelfCount", OSD.FromInteger(SelfCount));
parcelDataMap.put("SequenceID", OSD.FromInteger(SequenceID));
parcelDataMap.put("SimWideMaxPrims", OSD.FromInteger(SimWideMaxPrims));
parcelDataMap.put("SimWideTotalPrims", OSD.FromInteger(SimWideTotalPrims));
parcelDataMap.put("SnapSelection", OSD.FromBoolean(SnapSelection));
parcelDataMap.put("SnapshotID", OSD.FromUUID(SnapshotID));
parcelDataMap.put("Status", OSD.FromInteger((int)Status.getIndex()));
parcelDataMap.put("TotalPrims", OSD.FromInteger(TotalPrims));
parcelDataMap.put("UserLocation", OSD.FromVector3(UserLocation));
parcelDataMap.put("UserLookAt", OSD.FromVector3(UserLookAt));
dataArray.add(parcelDataMap);
map.put("ParcelData", dataArray);
OSDArray mediaDataArray = new OSDArray(1);
OSDMap mediaDataMap = new OSDMap(7);
mediaDataMap.put("MediaDesc", OSD.FromString(MediaDesc));
mediaDataMap.put("MediaHeight", OSD.FromInteger(MediaHeight));
mediaDataMap.put("MediaWidth", OSD.FromInteger(MediaWidth));
mediaDataMap.put("MediaLoop", OSD.FromBoolean(MediaLoop));
mediaDataMap.put("MediaType", OSD.FromString(MediaType));
mediaDataMap.put("ObscureMedia", OSD.FromBoolean(ObscureMedia));
mediaDataMap.put("ObscureMusic", OSD.FromBoolean(ObscureMusic));
mediaDataArray.add(mediaDataMap);
map.put("MediaData", mediaDataArray);
OSDArray ageVerificationBlockArray = new OSDArray(1);
OSDMap ageVerificationBlockMap = new OSDMap(1);
ageVerificationBlockMap.put("RegionDenyAgeUnverified", OSD.FromBoolean(RegionDenyAgeUnverified));
ageVerificationBlockArray.add(ageVerificationBlockMap);
map.put("AgeVerificationBlock", ageVerificationBlockArray);
return map;
}