Great Idea! That will make Sims player's life much easier...
Here is my suggestions / requirement on the information that will be
included in the meta data / unique ID
I think that ...
- meta data has machine-readable part and human-readable part. (XML?)
- meta data has part intended for edited by content creator / modder /recolor and part intended for edited by end user (to help ordinary Sims player to manage his/her files in Downloads folder) and part that may helpful to Sims custom contents web owner like MTS2 or TSR.
- meta data format should have flexibility and extensibility. Various tool can add its own meta data in it without compatibility/interoperability problems with other programs that uses meta data. But some basic/common information should be standardized to prevent prolification of duplicate data.
- Adding / updating meta data should not update system file time of the package file. (But user may choose to force update system file time)
Information I would like to see in the meta data.
1) size and MD5 hash of package file *EXCLUDING* the meta data.
This is used to identify actual contents of the package which is not changed even if meta data is edited or changed. It is content invariant info.
If only meta data is edited, normal file MD5 hash will be changed but we can still identify that actual contents by this hashing file except meta data.If user has two duplicate package file which has same actual package contents but different meta data, we can determine they are so.
I prefer normal MD5 to MAXIS CRC, because MD5 algorithm is public and readily available.
2) Optionally, 128 bit UUID of actual content for same purpose with MD5 hash.
It will be updated for each content revision. But not updated for meta data only change.
3) original maxis hexa CRC as string
Because it is used for file names in Downloads folder. It will help to find file even when the player renamed the hexa named file to more readable file name manually.
If there are two identical package file in the Downloads folder, one with meta data and the other that has no meta data but with MAXIS hexa CRC name, we can identify that they are same contents except meta data. Adding /editing meta data should not change maxis hexa CRC value.
4) Date/time of creation and date of last change of actual *contents*, not file or meta data.
This date should be set/changed only when actual content is changed. If meta data is edited only, this date/time should be preserved.
5) Date/time of last change of meta data itself.
Set to date of meta information change.
6) Installation key (32 bit number)
An index will be assigned when a package file is installed to Downloads folder. May be automatically assigned during browsing if file has meta data already. It is temporary handle for content browser. It is advised to preserve file modification date even if this key is newly assigned or modified. It will help content browser to identify files regardless of manual file renaming or copy.
7) Installation date/time
the time this file is installed to this download folder.
It is good information that user infers what/where the package file belongs to.
8) Content identifier (String + UUID)
Name of the object/hack which will not changed over update/revision.
like "Flamingo of DOOM", "Merola's Magic Mirror"
similar to Object UID, it should be unique across given installation.
"Ident" info which Quaxi suggested may be belong to this.
Quaxi's UUID will serve this purpose. It is only generated on NEW content
authoring, and will not be updated on later revision (preserved across all version)
9) content revision version number
This is release version number of content. like 1.01, 2.03.
It should be changed only when the actual content is updated/ revised by author or modder and release in public. Recoloring object or meta data editing should *NOT* change this number.
10) Recolor or variation version.
It is kinda sub version number of content version number.
It may be number or text string like "red" "my recolor"
For original object or hack mod this may be empty.
So full version name is like "Merola's Magic Mirror 1.3.red-recolor"
11) Content type
one or two-level content classification like
"clothing / female-adult-everyday-top"
"makeup/eyebrow", "makeup/eye color", "skin / male-teen", "hairstyle",
"object/living room" "floor tile/exterior", "house/community"
Top level classification should be able to automatically determined by software easily. So there should be strict set of content type classification scheme
for all possible type of custom contents. Making such standard will require quite a work and great cooperation. But it is important job and worth the endeavor , I think.
12) Author info
author name, team name, copyright owner info, distributor name (like MTS2 or TSR), contact info like e-mail or author web page.
They are all optional info. But the format should be standardized to help search or classification and single-click web browser navigation.
13) File information URL
(like
http://forums.modthesims2.com/showthread.php?t=35518). It is not file download URL but thread/article/web page URL related to this object!
14) Content archive info
For content distribution web site owner like TSR. This may be used for web site content management. May be DB index key number or directory path name string.
15) Digital Copyright info.
For DRM(digital right management). format may be dependent on specific DRM used.
16) README info
Optional copy of README info or file path string
17) Screen shot
Optional screen shot info. It may contain TGI(type group instance) of PNG image file.. or file name in separate screenshot folder or web URL of screenshot image
or meta data itself may contain screen shot image data in JPG, PNG, GIF.
There may be multiple screen shot info of different source.
This may be controversial for its size problem, but it will greatly help user to figure out what it is. But some user may choose to include image to meta data in expense of (ever getting cheaper by day) disk cost.
18) Comment string intended for ordinary player, not content author/modder.
Sims player can add/change short free-form comment about this file to help manage files in their Downloads folder. Adding/changing this comment will not change system file modification time.
19) Virtual folder / file name.
As you know, all the skin /clothing file should be put to single "Downloads" folder, not its sub-folder. and file name is long cryptic hexa string. They make file management quite hard and confusing.
So, let user can assign "virtual folder/ file name" to each file.
For supporting sims content browser, the pcakage files will be classified according to their virtual folder and can moved between different virtual folder by user.
This virtual folder has no need to be hierarchical.
Multiple virtual folder can be assigned to single file. For example, one for classified folder by author name, and one folder by type (clothing, make-up, hack, object etc)
There should be standard classification (virtual) folder set scheme by object type to avoid prolification of similar but different folder names.
20) Required Sims Expansion /Compatibility info.
Like Orignal, University, and something like that.
21) Extracted from: or part of:
Normally package file is not downloaded as standalone. They are part of Sims2pack, or ZIP, or Some skin file bundle... This field may be used for name of original
zip file Sims2 pack or collection of packages that costitutes specific relased "Content Set" (like Dining room set / Bath room set)
---
And my last suggestion to Maxis. How about to release the Maxis CRC hash algorithm info to aid sims2 content management tool maker?
Any comment will be welcomed...