Datum is the parent of most types in DreamMaker - and as such, the variables and procedures defined on it are inherited by most objects. It is wise to be careful when defining new variables on datum, and when defining procedures directly on datum - as this code will be run extremely frequently in more complex games.
You can define types without specifying /datum, but these types parent type will still be /datum.
/datum/my_new_type
/my_new_type
/world/New()
world.log << /datum/my_new_type::parent_type // /datum
world.log << /my_new_type::parent_type // /datum
Note that, despite this sharing the same name and inheritance structure, they are still distinct types. Vars and procedures defined on /datum/my_new_type
are not shared on /my_new_type
.